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