blob: 7d58d1d551b0ebe29fb05f0def66b3c054ae6635 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
/*
* Intel MIC Platform Software Stack (MPSS)
*
* Copyright(c) 2015 Intel Corporation.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License, version 2, as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* Intel SCIF driver.
*
*/
#ifndef SCIF_RMA_LIST_H
#define SCIF_RMA_LIST_H
/*
* struct scif_rma_req - Self Registration list RMA Request query
*
* @out_window - Returns the window if found
* @offset: Starting offset
* @nr_bytes: number of bytes
* @prot: protection requested i.e. read or write or both
* @type: Specify single, partial or multiple windows
* @head: Head of list on which to search
* @va_for_temp: VA for searching temporary cached windows
*/
struct scif_rma_req {
struct scif_window **out_window;
union {
s64 offset;
unsigned long va_for_temp;
};
size_t nr_bytes;
int prot;
enum scif_window_type type;
struct list_head *head;
};
/* Insert */
void scif_insert_window(struct scif_window *window, struct list_head *head);
void scif_insert_tcw(struct scif_window *window,
struct list_head *head);
/* Query */
int scif_query_window(struct scif_rma_req *request);
int scif_query_tcw(struct scif_endpt *ep, struct scif_rma_req *request);
/* Called from close to unregister all self windows */
int scif_unregister_all_windows(scif_epd_t epd);
void scif_unmap_all_windows(scif_epd_t epd);
/* Traverse list and unregister */
int scif_rma_list_unregister(struct scif_window *window, s64 offset,
int nr_pages);
#endif /* SCIF_RMA_LIST_H */
|