Linux Audio

Check our new training course

Loading...
Note: File does not exist in v3.1.
 1/* SPDX-License-Identifier: GPL-2.0-only */
 2/*
 3 * Intel MIC Platform Software Stack (MPSS)
 4 *
 5 * Copyright(c) 2015 Intel Corporation.
 6 *
 7 * Intel SCIF driver.
 8 */
 9#ifndef SCIF_RMA_LIST_H
10#define SCIF_RMA_LIST_H
11
12/*
13 * struct scif_rma_req - Self Registration list RMA Request query
14 *
15 * @out_window - Returns the window if found
16 * @offset: Starting offset
17 * @nr_bytes: number of bytes
18 * @prot: protection requested i.e. read or write or both
19 * @type: Specify single, partial or multiple windows
20 * @head: Head of list on which to search
21 * @va_for_temp: VA for searching temporary cached windows
22 */
23struct scif_rma_req {
24	struct scif_window **out_window;
25	union {
26		s64 offset;
27		unsigned long va_for_temp;
28	};
29	size_t nr_bytes;
30	int prot;
31	enum scif_window_type type;
32	struct list_head *head;
33};
34
35/* Insert */
36void scif_insert_window(struct scif_window *window, struct list_head *head);
37void scif_insert_tcw(struct scif_window *window,
38		     struct list_head *head);
39/* Query */
40int scif_query_window(struct scif_rma_req *request);
41int scif_query_tcw(struct scif_endpt *ep, struct scif_rma_req *request);
42/* Called from close to unregister all self windows */
43int scif_unregister_all_windows(scif_epd_t epd);
44void scif_unmap_all_windows(scif_epd_t epd);
45/* Traverse list and unregister */
46int scif_rma_list_unregister(struct scif_window *window, s64 offset,
47			     int nr_pages);
48#endif /* SCIF_RMA_LIST_H */