~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/uapi/linux/scif_ioctl.h

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */
  2 /*
  3  * Intel MIC Platform Software Stack (MPSS)
  4  *
  5  * This file is provided under a dual BSD/GPLv2 license.  When using or
  6  * redistributing this file, you may do so under either license.
  7  *
  8  * GPL LICENSE SUMMARY
  9  *
 10  * Copyright(c) 2014 Intel Corporation.
 11  *
 12  * This program is free software; you can redistribute it and/or modify
 13  * it under the terms of version 2 of the GNU General Public License as
 14  * published by the Free Software Foundation.
 15  *
 16  * This program is distributed in the hope that it will be useful, but
 17  * WITHOUT ANY WARRANTY; without even the implied warranty of
 18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 19  * General Public License for more details.
 20  *
 21  * BSD LICENSE
 22  *
 23  * Copyright(c) 2014 Intel Corporation.
 24  *
 25  * Redistribution and use in source and binary forms, with or without
 26  * modification, are permitted provided that the following conditions
 27  * are met:
 28  *
 29  * * Redistributions of source code must retain the above copyright
 30  *   notice, this list of conditions and the following disclaimer.
 31  * * Redistributions in binary form must reproduce the above copyright
 32  *   notice, this list of conditions and the following disclaimer in
 33  *   the documentation and/or other materials provided with the
 34  *   distribution.
 35  * * Neither the name of Intel Corporation nor the names of its
 36  *   contributors may be used to endorse or promote products derived
 37  *   from this software without specific prior written permission.
 38  *
 39  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 40  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 41  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 42  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 43  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 44  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 45  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 46  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 47  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 48  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 49  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 50  *
 51  * Intel SCIF driver.
 52  *
 53  */
 54 /*
 55  * -----------------------------------------
 56  * SCIF IOCTL interface information
 57  * -----------------------------------------
 58  */
 59 #ifndef SCIF_IOCTL_H
 60 #define SCIF_IOCTL_H
 61 
 62 #include <linux/types.h>
 63 
 64 /**
 65  * struct scif_port_id - SCIF port information
 66  * @node:       node on which port resides
 67  * @port:       local port number
 68  */
 69 struct scif_port_id {
 70         __u16 node;
 71         __u16 port;
 72 };
 73 
 74 /**
 75  * struct scifioctl_connect - used for SCIF_CONNECT IOCTL
 76  * @self:       used to read back the assigned port_id
 77  * @peer:       destination node and port to connect to
 78  */
 79 struct scifioctl_connect {
 80         struct scif_port_id     self;
 81         struct scif_port_id     peer;
 82 };
 83 
 84 /**
 85  * struct scifioctl_accept - used for SCIF_ACCEPTREQ IOCTL
 86  * @flags:      flags
 87  * @peer:       global id of peer endpoint
 88  * @endpt:      new connected endpoint descriptor
 89  */
 90 struct scifioctl_accept {
 91         __s32                   flags;
 92         struct scif_port_id     peer;
 93         __u64                   endpt;
 94 };
 95 
 96 /**
 97  * struct scifioctl_msg - used for SCIF_SEND/SCIF_RECV IOCTL
 98  * @msg:        message buffer address
 99  * @len:        message length
100  * @flags:      flags
101  * @out_len:    number of bytes sent/received
102  */
103 struct scifioctl_msg {
104         __u64   msg;
105         __s32   len;
106         __s32   flags;
107         __s32   out_len;
108 };
109 
110 /**
111  * struct scifioctl_reg - used for SCIF_REG IOCTL
112  * @addr:       starting virtual address
113  * @len:        length of range
114  * @offset:     offset of window
115  * @prot:       read/write protection
116  * @flags:      flags
117  * @out_offset: offset returned
118  */
119 struct scifioctl_reg {
120         __u64           addr;
121         __u64           len;
122         __s64           offset;
123         __s32           prot;
124         __s32           flags;
125         __s64           out_offset;
126 };
127 
128 /**
129  * struct scifioctl_unreg - used for SCIF_UNREG IOCTL
130  * @offset:     start of range to unregister
131  * @len:        length of range to unregister
132  */
133 struct scifioctl_unreg {
134         __s64           offset;
135         __u64           len;
136 };
137 
138 /**
139  * struct scifioctl_copy - used for SCIF DMA copy IOCTLs
140  *
141  * @loffset:    offset in local registered address space to/from
142  *              which to copy
143  * @len:        length of range to copy
144  * @roffset:    offset in remote registered address space to/from
145  *              which to copy
146  * @addr:       user virtual address to/from which to copy
147  * @flags:      flags
148  *
149  * This structure is used for SCIF_READFROM, SCIF_WRITETO, SCIF_VREADFROM
150  * and SCIF_VREADFROM IOCTL's.
151  */
152 struct scifioctl_copy {
153         __s64           loffset;
154         __u64           len;
155         __s64           roffset;
156         __u64           addr;
157         __s32           flags;
158 };
159 
160 /**
161  * struct scifioctl_fence_mark  - used for SCIF_FENCE_MARK IOCTL
162  * @flags:      flags
163  * @mark:       fence handle which is a pointer to a __s32
164  */
165 struct scifioctl_fence_mark {
166         __s32   flags;
167         __u64   mark;
168 };
169 
170 /**
171  * struct scifioctl_fence_signal - used for SCIF_FENCE_SIGNAL IOCTL
172  * @loff:       local offset
173  * @lval:       value to write to loffset
174  * @roff:       remote offset
175  * @rval:       value to write to roffset
176  * @flags:      flags
177  */
178 struct scifioctl_fence_signal {
179         __s64           loff;
180         __u64           lval;
181         __s64           roff;
182         __u64           rval;
183         __s32           flags;
184 };
185 
186 /**
187  * struct scifioctl_node_ids - used for SCIF_GET_NODEIDS IOCTL
188  * @nodes:      pointer to an array of node_ids
189  * @self:       ID of the current node
190  * @len:        length of array
191  */
192 struct scifioctl_node_ids {
193         __u64   nodes;
194         __u64   self;
195         __s32   len;
196 };
197 
198 #define SCIF_BIND               _IOWR('s', 1, __u64)
199 #define SCIF_LISTEN             _IOW('s', 2, __s32)
200 #define SCIF_CONNECT            _IOWR('s', 3, struct scifioctl_connect)
201 #define SCIF_ACCEPTREQ          _IOWR('s', 4, struct scifioctl_accept)
202 #define SCIF_ACCEPTREG          _IOWR('s', 5, __u64)
203 #define SCIF_SEND               _IOWR('s', 6, struct scifioctl_msg)
204 #define SCIF_RECV               _IOWR('s', 7, struct scifioctl_msg)
205 #define SCIF_REG                _IOWR('s', 8, struct scifioctl_reg)
206 #define SCIF_UNREG              _IOWR('s', 9, struct scifioctl_unreg)
207 #define SCIF_READFROM           _IOWR('s', 10, struct scifioctl_copy)
208 #define SCIF_WRITETO            _IOWR('s', 11, struct scifioctl_copy)
209 #define SCIF_VREADFROM          _IOWR('s', 12, struct scifioctl_copy)
210 #define SCIF_VWRITETO           _IOWR('s', 13, struct scifioctl_copy)
211 #define SCIF_GET_NODEIDS        _IOWR('s', 14, struct scifioctl_node_ids)
212 #define SCIF_FENCE_MARK         _IOWR('s', 15, struct scifioctl_fence_mark)
213 #define SCIF_FENCE_WAIT         _IOWR('s', 16, __s32)
214 #define SCIF_FENCE_SIGNAL       _IOWR('s', 17, struct scifioctl_fence_signal)
215 
216 #endif /* SCIF_IOCTL_H */
217 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php