diff options
Diffstat (limited to 'include/uapi/linux/scif_ioctl.h')
-rw-r--r-- | include/uapi/linux/scif_ioctl.h | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/include/uapi/linux/scif_ioctl.h b/include/uapi/linux/scif_ioctl.h index 4a94d917cf99..d9048918be52 100644 --- a/include/uapi/linux/scif_ioctl.h +++ b/include/uapi/linux/scif_ioctl.h | |||
@@ -107,6 +107,82 @@ struct scifioctl_msg { | |||
107 | }; | 107 | }; |
108 | 108 | ||
109 | /** | 109 | /** |
110 | * struct scifioctl_reg - used for SCIF_REG IOCTL | ||
111 | * @addr: starting virtual address | ||
112 | * @len: length of range | ||
113 | * @offset: offset of window | ||
114 | * @prot: read/write protection | ||
115 | * @flags: flags | ||
116 | * @out_offset: offset returned | ||
117 | */ | ||
118 | struct scifioctl_reg { | ||
119 | __u64 addr; | ||
120 | __u64 len; | ||
121 | __s64 offset; | ||
122 | __s32 prot; | ||
123 | __s32 flags; | ||
124 | __s64 out_offset; | ||
125 | }; | ||
126 | |||
127 | /** | ||
128 | * struct scifioctl_unreg - used for SCIF_UNREG IOCTL | ||
129 | * @offset: start of range to unregister | ||
130 | * @len: length of range to unregister | ||
131 | */ | ||
132 | struct scifioctl_unreg { | ||
133 | __s64 offset; | ||
134 | __u64 len; | ||
135 | }; | ||
136 | |||
137 | /** | ||
138 | * struct scifioctl_copy - used for SCIF DMA copy IOCTLs | ||
139 | * | ||
140 | * @loffset: offset in local registered address space to/from | ||
141 | * which to copy | ||
142 | * @len: length of range to copy | ||
143 | * @roffset: offset in remote registered address space to/from | ||
144 | * which to copy | ||
145 | * @addr: user virtual address to/from which to copy | ||
146 | * @flags: flags | ||
147 | * | ||
148 | * This structure is used for SCIF_READFROM, SCIF_WRITETO, SCIF_VREADFROM | ||
149 | * and SCIF_VREADFROM IOCTL's. | ||
150 | */ | ||
151 | struct scifioctl_copy { | ||
152 | __s64 loffset; | ||
153 | __u64 len; | ||
154 | __s64 roffset; | ||
155 | __u64 addr; | ||
156 | __s32 flags; | ||
157 | }; | ||
158 | |||
159 | /** | ||
160 | * struct scifioctl_fence_mark - used for SCIF_FENCE_MARK IOCTL | ||
161 | * @flags: flags | ||
162 | * @mark: fence handle which is a pointer to a __s32 | ||
163 | */ | ||
164 | struct scifioctl_fence_mark { | ||
165 | __s32 flags; | ||
166 | __u64 mark; | ||
167 | }; | ||
168 | |||
169 | /** | ||
170 | * struct scifioctl_fence_signal - used for SCIF_FENCE_SIGNAL IOCTL | ||
171 | * @loff: local offset | ||
172 | * @lval: value to write to loffset | ||
173 | * @roff: remote offset | ||
174 | * @rval: value to write to roffset | ||
175 | * @flags: flags | ||
176 | */ | ||
177 | struct scifioctl_fence_signal { | ||
178 | __s64 loff; | ||
179 | __u64 lval; | ||
180 | __s64 roff; | ||
181 | __u64 rval; | ||
182 | __s32 flags; | ||
183 | }; | ||
184 | |||
185 | /** | ||
110 | * struct scifioctl_node_ids - used for SCIF_GET_NODEIDS IOCTL | 186 | * struct scifioctl_node_ids - used for SCIF_GET_NODEIDS IOCTL |
111 | * @nodes: pointer to an array of node_ids | 187 | * @nodes: pointer to an array of node_ids |
112 | * @self: ID of the current node | 188 | * @self: ID of the current node |
@@ -125,6 +201,15 @@ struct scifioctl_node_ids { | |||
125 | #define SCIF_ACCEPTREG _IOWR('s', 5, __u64) | 201 | #define SCIF_ACCEPTREG _IOWR('s', 5, __u64) |
126 | #define SCIF_SEND _IOWR('s', 6, struct scifioctl_msg) | 202 | #define SCIF_SEND _IOWR('s', 6, struct scifioctl_msg) |
127 | #define SCIF_RECV _IOWR('s', 7, struct scifioctl_msg) | 203 | #define SCIF_RECV _IOWR('s', 7, struct scifioctl_msg) |
204 | #define SCIF_REG _IOWR('s', 8, struct scifioctl_reg) | ||
205 | #define SCIF_UNREG _IOWR('s', 9, struct scifioctl_unreg) | ||
206 | #define SCIF_READFROM _IOWR('s', 10, struct scifioctl_copy) | ||
207 | #define SCIF_WRITETO _IOWR('s', 11, struct scifioctl_copy) | ||
208 | #define SCIF_VREADFROM _IOWR('s', 12, struct scifioctl_copy) | ||
209 | #define SCIF_VWRITETO _IOWR('s', 13, struct scifioctl_copy) | ||
128 | #define SCIF_GET_NODEIDS _IOWR('s', 14, struct scifioctl_node_ids) | 210 | #define SCIF_GET_NODEIDS _IOWR('s', 14, struct scifioctl_node_ids) |
211 | #define SCIF_FENCE_MARK _IOWR('s', 15, struct scifioctl_fence_mark) | ||
212 | #define SCIF_FENCE_WAIT _IOWR('s', 16, __s32) | ||
213 | #define SCIF_FENCE_SIGNAL _IOWR('s', 17, struct scifioctl_fence_signal) | ||
129 | 214 | ||
130 | #endif /* SCIF_IOCTL_H */ | 215 | #endif /* SCIF_IOCTL_H */ |