linux_rust_bindings/io_uring/
io_uring_x86.rs

1/* automatically generated by rust-bindgen 0.69.1 */
2
3#[repr(C)]
4#[derive(Default)]
5pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
6impl<T> __IncompleteArrayField<T> {
7    #[inline]
8    pub const fn new() -> Self {
9        __IncompleteArrayField(::core::marker::PhantomData, [])
10    }
11    #[inline]
12    pub fn as_ptr(&self) -> *const T {
13        self as *const _ as *const T
14    }
15    #[inline]
16    pub fn as_mut_ptr(&mut self) -> *mut T {
17        self as *mut _ as *mut T
18    }
19    #[inline]
20    pub unsafe fn as_slice(&self, len: usize) -> &[T] {
21        ::core::slice::from_raw_parts(self.as_ptr(), len)
22    }
23    #[inline]
24    pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
25        ::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
26    }
27}
28impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
29    fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
30        fmt.write_str("__IncompleteArrayField")
31    }
32}
33#[repr(C)]
34pub struct __BindgenUnionField<T>(::core::marker::PhantomData<T>);
35impl<T> __BindgenUnionField<T> {
36    #[inline]
37    pub const fn new() -> Self {
38        __BindgenUnionField(::core::marker::PhantomData)
39    }
40    #[inline]
41    pub unsafe fn as_ref(&self) -> &T {
42        ::core::mem::transmute(self)
43    }
44    #[inline]
45    pub unsafe fn as_mut(&mut self) -> &mut T {
46        ::core::mem::transmute(self)
47    }
48}
49impl<T> ::core::default::Default for __BindgenUnionField<T> {
50    #[inline]
51    fn default() -> Self {
52        Self::new()
53    }
54}
55impl<T> ::core::clone::Clone for __BindgenUnionField<T> {
56    #[inline]
57    fn clone(&self) -> Self {
58        *self
59    }
60}
61impl<T> ::core::marker::Copy for __BindgenUnionField<T> {}
62impl<T> ::core::fmt::Debug for __BindgenUnionField<T> {
63    fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
64        fmt.write_str("__BindgenUnionField")
65    }
66}
67impl<T> ::core::hash::Hash for __BindgenUnionField<T> {
68    fn hash<H: ::core::hash::Hasher>(&self, _state: &mut H) {}
69}
70impl<T> ::core::cmp::PartialEq for __BindgenUnionField<T> {
71    fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
72        true
73    }
74}
75impl<T> ::core::cmp::Eq for __BindgenUnionField<T> {}
76pub const IOC_IN: i32 = 1073741824;
77pub const IOC_OUT: i64 = 2147483648;
78pub const IOC_INOUT: i64 = 3221225472;
79pub const IOCSIZE_MASK: i32 = 1073676288;
80pub const IOCSIZE_SHIFT: i32 = 16;
81pub const IORING_FILE_INDEX_ALLOC: i32 = -1;
82pub const IORING_SETUP_IOPOLL: i32 = 1;
83pub const IORING_SETUP_SQPOLL: i32 = 2;
84pub const IORING_SETUP_SQ_AFF: i32 = 4;
85pub const IORING_SETUP_CQSIZE: i32 = 8;
86pub const IORING_SETUP_CLAMP: i32 = 16;
87pub const IORING_SETUP_ATTACH_WQ: i32 = 32;
88pub const IORING_SETUP_R_DISABLED: i32 = 64;
89pub const IORING_SETUP_SUBMIT_ALL: i32 = 128;
90pub const IORING_SETUP_COOP_TASKRUN: i32 = 256;
91pub const IORING_SETUP_TASKRUN_FLAG: i32 = 512;
92pub const IORING_SETUP_SQE128: i32 = 1024;
93pub const IORING_SETUP_CQE32: i32 = 2048;
94pub const IORING_SETUP_SINGLE_ISSUER: i32 = 4096;
95pub const IORING_SETUP_DEFER_TASKRUN: i32 = 8192;
96pub const IORING_SETUP_NO_MMAP: i32 = 16384;
97pub const IORING_SETUP_REGISTERED_FD_ONLY: i32 = 32768;
98pub const IORING_SETUP_NO_SQARRAY: i32 = 65536;
99pub const IORING_URING_CMD_FIXED: i32 = 1;
100pub const IORING_URING_CMD_POLLED: i64 = 2147483648;
101pub const IORING_FSYNC_DATASYNC: i32 = 1;
102pub const IORING_TIMEOUT_ABS: i32 = 1;
103pub const IORING_TIMEOUT_UPDATE: i32 = 2;
104pub const IORING_TIMEOUT_BOOTTIME: i32 = 4;
105pub const IORING_TIMEOUT_REALTIME: i32 = 8;
106pub const IORING_LINK_TIMEOUT_UPDATE: i32 = 16;
107pub const IORING_TIMEOUT_ETIME_SUCCESS: i32 = 32;
108pub const IORING_TIMEOUT_MULTISHOT: i32 = 64;
109pub const IORING_TIMEOUT_CLOCK_MASK: i32 = 12;
110pub const IORING_TIMEOUT_UPDATE_MASK: i32 = 18;
111pub const IORING_POLL_ADD_MULTI: i32 = 1;
112pub const IORING_POLL_UPDATE_EVENTS: i32 = 2;
113pub const IORING_POLL_UPDATE_USER_DATA: i32 = 4;
114pub const IORING_POLL_ADD_LEVEL: i32 = 8;
115pub const IORING_ASYNC_CANCEL_ALL: i32 = 1;
116pub const IORING_ASYNC_CANCEL_FD: i32 = 2;
117pub const IORING_ASYNC_CANCEL_ANY: i32 = 4;
118pub const IORING_ASYNC_CANCEL_FD_FIXED: i32 = 8;
119pub const IORING_ASYNC_CANCEL_USERDATA: i32 = 16;
120pub const IORING_ASYNC_CANCEL_OP: i32 = 32;
121pub const IORING_RECVSEND_POLL_FIRST: i32 = 1;
122pub const IORING_RECV_MULTISHOT: i32 = 2;
123pub const IORING_RECVSEND_FIXED_BUF: i32 = 4;
124pub const IORING_SEND_ZC_REPORT_USAGE: i32 = 8;
125pub const IORING_NOTIF_USAGE_ZC_COPIED: i64 = 2147483648;
126pub const IORING_ACCEPT_MULTISHOT: i32 = 1;
127pub const IORING_MSG_RING_CQE_SKIP: i32 = 1;
128pub const IORING_MSG_RING_FLAGS_PASS: i32 = 2;
129pub const IORING_CQE_F_BUFFER: i32 = 1;
130pub const IORING_CQE_F_MORE: i32 = 2;
131pub const IORING_CQE_F_SOCK_NONEMPTY: i32 = 4;
132pub const IORING_CQE_F_NOTIF: i32 = 8;
133pub const IORING_OFF_SQ_RING: i32 = 0;
134pub const IORING_OFF_CQ_RING: i32 = 134217728;
135pub const IORING_OFF_SQES: i32 = 268435456;
136pub const IORING_OFF_PBUF_RING: i64 = 2147483648;
137pub const IORING_OFF_PBUF_SHIFT: i32 = 16;
138pub const IORING_OFF_MMAP_MASK: i64 = 4160749568;
139pub const IORING_SQ_NEED_WAKEUP: i32 = 1;
140pub const IORING_SQ_CQ_OVERFLOW: i32 = 2;
141pub const IORING_SQ_TASKRUN: i32 = 4;
142pub const IORING_CQ_EVENTFD_DISABLED: i32 = 1;
143pub const IORING_ENTER_GETEVENTS: i32 = 1;
144pub const IORING_ENTER_SQ_WAKEUP: i32 = 2;
145pub const IORING_ENTER_SQ_WAIT: i32 = 4;
146pub const IORING_ENTER_EXT_ARG: i32 = 8;
147pub const IORING_ENTER_REGISTERED_RING: i32 = 16;
148pub const IORING_FEAT_SINGLE_MMAP: i32 = 1;
149pub const IORING_FEAT_NODROP: i32 = 2;
150pub const IORING_FEAT_SUBMIT_STABLE: i32 = 4;
151pub const IORING_FEAT_RW_CUR_POS: i32 = 8;
152pub const IORING_FEAT_CUR_PERSONALITY: i32 = 16;
153pub const IORING_FEAT_FAST_POLL: i32 = 32;
154pub const IORING_FEAT_POLL_32BITS: i32 = 64;
155pub const IORING_FEAT_SQPOLL_NONFIXED: i32 = 128;
156pub const IORING_FEAT_EXT_ARG: i32 = 256;
157pub const IORING_FEAT_NATIVE_WORKERS: i32 = 512;
158pub const IORING_FEAT_RSRC_TAGS: i32 = 1024;
159pub const IORING_FEAT_CQE_SKIP: i32 = 2048;
160pub const IORING_FEAT_LINKED_FILE: i32 = 4096;
161pub const IORING_FEAT_REG_REG_RING: i32 = 8192;
162pub const IORING_RSRC_REGISTER_SPARSE: i32 = 1;
163pub const IORING_REGISTER_FILES_SKIP: i32 = -2;
164pub const IO_URING_OP_SUPPORTED: i32 = 1;
165pub type __u8 = ::core::ffi::c_uchar;
166pub type __u16 = ::core::ffi::c_ushort;
167pub type __s32 = ::core::ffi::c_int;
168pub type __u32 = ::core::ffi::c_uint;
169pub type __u64 = ::core::ffi::c_ulonglong;
170pub type __kernel_rwf_t = ::core::ffi::c_int;
171#[repr(C)]
172pub struct io_uring_sqe {
173    pub opcode: __u8,
174    pub flags: __u8,
175    pub ioprio: __u16,
176    pub fd: __s32,
177    pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_1,
178    pub __bindgen_anon_2: io_uring_sqe__bindgen_ty_2,
179    pub len: __u32,
180    pub __bindgen_anon_3: io_uring_sqe__bindgen_ty_3,
181    pub user_data: __u64,
182    pub __bindgen_anon_4: io_uring_sqe__bindgen_ty_4,
183    pub personality: __u16,
184    pub __bindgen_anon_5: io_uring_sqe__bindgen_ty_5,
185    pub __bindgen_anon_6: io_uring_sqe__bindgen_ty_6,
186}
187#[repr(C)]
188#[derive(Copy, Clone)]
189pub union io_uring_sqe__bindgen_ty_1 {
190    pub off: __u64,
191    pub addr2: __u64,
192    pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_1__bindgen_ty_1,
193}
194#[repr(C)]
195#[derive(Debug, Copy, Clone)]
196pub struct io_uring_sqe__bindgen_ty_1__bindgen_ty_1 {
197    pub cmd_op: __u32,
198    pub __pad1: __u32,
199}
200#[repr(C)]
201#[derive(Copy, Clone)]
202pub union io_uring_sqe__bindgen_ty_2 {
203    pub addr: __u64,
204    pub splice_off_in: __u64,
205}
206#[repr(C)]
207#[derive(Copy, Clone)]
208pub union io_uring_sqe__bindgen_ty_3 {
209    pub rw_flags: __kernel_rwf_t,
210    pub fsync_flags: __u32,
211    pub poll_events: __u16,
212    pub poll32_events: __u32,
213    pub sync_range_flags: __u32,
214    pub msg_flags: __u32,
215    pub timeout_flags: __u32,
216    pub accept_flags: __u32,
217    pub cancel_flags: __u32,
218    pub open_flags: __u32,
219    pub statx_flags: __u32,
220    pub fadvise_advice: __u32,
221    pub splice_flags: __u32,
222    pub rename_flags: __u32,
223    pub unlink_flags: __u32,
224    pub hardlink_flags: __u32,
225    pub xattr_flags: __u32,
226    pub msg_ring_flags: __u32,
227    pub uring_cmd_flags: __u32,
228}
229#[repr(C, packed)]
230#[derive(Copy, Clone)]
231pub union io_uring_sqe__bindgen_ty_4 {
232    pub buf_index: __u16,
233    pub buf_group: __u16,
234}
235#[repr(C)]
236#[derive(Copy, Clone)]
237pub union io_uring_sqe__bindgen_ty_5 {
238    pub splice_fd_in: __s32,
239    pub file_index: __u32,
240    pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_5__bindgen_ty_1,
241}
242#[repr(C)]
243#[derive(Debug, Copy, Clone)]
244pub struct io_uring_sqe__bindgen_ty_5__bindgen_ty_1 {
245    pub addr_len: __u16,
246    pub __pad3: [__u16; 1usize],
247}
248#[repr(C)]
249pub struct io_uring_sqe__bindgen_ty_6 {
250    pub __bindgen_anon_1: __BindgenUnionField<io_uring_sqe__bindgen_ty_6__bindgen_ty_1>,
251    pub cmd: __BindgenUnionField<[__u8; 0usize]>,
252    pub bindgen_union_field: [u64; 2usize],
253}
254#[repr(C)]
255#[derive(Debug, Copy, Clone)]
256pub struct io_uring_sqe__bindgen_ty_6__bindgen_ty_1 {
257    pub addr3: __u64,
258    pub __pad2: [__u64; 1usize],
259}
260pub const IOSQE_FIXED_FILE_BIT: _bindgen_ty_1 = 0;
261pub const IOSQE_IO_DRAIN_BIT: _bindgen_ty_1 = 1;
262pub const IOSQE_IO_LINK_BIT: _bindgen_ty_1 = 2;
263pub const IOSQE_IO_HARDLINK_BIT: _bindgen_ty_1 = 3;
264pub const IOSQE_ASYNC_BIT: _bindgen_ty_1 = 4;
265pub const IOSQE_BUFFER_SELECT_BIT: _bindgen_ty_1 = 5;
266pub const IOSQE_CQE_SKIP_SUCCESS_BIT: _bindgen_ty_1 = 6;
267pub type _bindgen_ty_1 = ::core::ffi::c_uint;
268pub const io_uring_op_IORING_OP_NOP: io_uring_op = 0;
269pub const io_uring_op_IORING_OP_READV: io_uring_op = 1;
270pub const io_uring_op_IORING_OP_WRITEV: io_uring_op = 2;
271pub const io_uring_op_IORING_OP_FSYNC: io_uring_op = 3;
272pub const io_uring_op_IORING_OP_READ_FIXED: io_uring_op = 4;
273pub const io_uring_op_IORING_OP_WRITE_FIXED: io_uring_op = 5;
274pub const io_uring_op_IORING_OP_POLL_ADD: io_uring_op = 6;
275pub const io_uring_op_IORING_OP_POLL_REMOVE: io_uring_op = 7;
276pub const io_uring_op_IORING_OP_SYNC_FILE_RANGE: io_uring_op = 8;
277pub const io_uring_op_IORING_OP_SENDMSG: io_uring_op = 9;
278pub const io_uring_op_IORING_OP_RECVMSG: io_uring_op = 10;
279pub const io_uring_op_IORING_OP_TIMEOUT: io_uring_op = 11;
280pub const io_uring_op_IORING_OP_TIMEOUT_REMOVE: io_uring_op = 12;
281pub const io_uring_op_IORING_OP_ACCEPT: io_uring_op = 13;
282pub const io_uring_op_IORING_OP_ASYNC_CANCEL: io_uring_op = 14;
283pub const io_uring_op_IORING_OP_LINK_TIMEOUT: io_uring_op = 15;
284pub const io_uring_op_IORING_OP_CONNECT: io_uring_op = 16;
285pub const io_uring_op_IORING_OP_FALLOCATE: io_uring_op = 17;
286pub const io_uring_op_IORING_OP_OPENAT: io_uring_op = 18;
287pub const io_uring_op_IORING_OP_CLOSE: io_uring_op = 19;
288pub const io_uring_op_IORING_OP_FILES_UPDATE: io_uring_op = 20;
289pub const io_uring_op_IORING_OP_STATX: io_uring_op = 21;
290pub const io_uring_op_IORING_OP_READ: io_uring_op = 22;
291pub const io_uring_op_IORING_OP_WRITE: io_uring_op = 23;
292pub const io_uring_op_IORING_OP_FADVISE: io_uring_op = 24;
293pub const io_uring_op_IORING_OP_MADVISE: io_uring_op = 25;
294pub const io_uring_op_IORING_OP_SEND: io_uring_op = 26;
295pub const io_uring_op_IORING_OP_RECV: io_uring_op = 27;
296pub const io_uring_op_IORING_OP_OPENAT2: io_uring_op = 28;
297pub const io_uring_op_IORING_OP_EPOLL_CTL: io_uring_op = 29;
298pub const io_uring_op_IORING_OP_SPLICE: io_uring_op = 30;
299pub const io_uring_op_IORING_OP_PROVIDE_BUFFERS: io_uring_op = 31;
300pub const io_uring_op_IORING_OP_REMOVE_BUFFERS: io_uring_op = 32;
301pub const io_uring_op_IORING_OP_TEE: io_uring_op = 33;
302pub const io_uring_op_IORING_OP_SHUTDOWN: io_uring_op = 34;
303pub const io_uring_op_IORING_OP_RENAMEAT: io_uring_op = 35;
304pub const io_uring_op_IORING_OP_UNLINKAT: io_uring_op = 36;
305pub const io_uring_op_IORING_OP_MKDIRAT: io_uring_op = 37;
306pub const io_uring_op_IORING_OP_SYMLINKAT: io_uring_op = 38;
307pub const io_uring_op_IORING_OP_LINKAT: io_uring_op = 39;
308pub const io_uring_op_IORING_OP_MSG_RING: io_uring_op = 40;
309pub const io_uring_op_IORING_OP_FSETXATTR: io_uring_op = 41;
310pub const io_uring_op_IORING_OP_SETXATTR: io_uring_op = 42;
311pub const io_uring_op_IORING_OP_FGETXATTR: io_uring_op = 43;
312pub const io_uring_op_IORING_OP_GETXATTR: io_uring_op = 44;
313pub const io_uring_op_IORING_OP_SOCKET: io_uring_op = 45;
314pub const io_uring_op_IORING_OP_URING_CMD: io_uring_op = 46;
315pub const io_uring_op_IORING_OP_SEND_ZC: io_uring_op = 47;
316pub const io_uring_op_IORING_OP_SENDMSG_ZC: io_uring_op = 48;
317pub const io_uring_op_IORING_OP_LAST: io_uring_op = 49;
318pub type io_uring_op = ::core::ffi::c_uint;
319pub const IORING_MSG_DATA: _bindgen_ty_2 = 0;
320pub const IORING_MSG_SEND_FD: _bindgen_ty_2 = 1;
321pub type _bindgen_ty_2 = ::core::ffi::c_uint;
322#[repr(C)]
323#[derive(Debug)]
324pub struct io_uring_cqe {
325    pub user_data: __u64,
326    pub res: __s32,
327    pub flags: __u32,
328    pub big_cqe: __IncompleteArrayField<__u64>,
329}
330pub const IORING_CQE_BUFFER_SHIFT: _bindgen_ty_3 = 16;
331pub type _bindgen_ty_3 = ::core::ffi::c_uint;
332#[repr(C)]
333#[derive(Debug, Copy, Clone)]
334pub struct io_sqring_offsets {
335    pub head: __u32,
336    pub tail: __u32,
337    pub ring_mask: __u32,
338    pub ring_entries: __u32,
339    pub flags: __u32,
340    pub dropped: __u32,
341    pub array: __u32,
342    pub resv1: __u32,
343    pub user_addr: __u64,
344}
345#[repr(C)]
346#[derive(Debug, Copy, Clone)]
347pub struct io_cqring_offsets {
348    pub head: __u32,
349    pub tail: __u32,
350    pub ring_mask: __u32,
351    pub ring_entries: __u32,
352    pub overflow: __u32,
353    pub cqes: __u32,
354    pub flags: __u32,
355    pub resv1: __u32,
356    pub user_addr: __u64,
357}
358#[repr(C)]
359#[derive(Debug, Copy, Clone)]
360pub struct io_uring_params {
361    pub sq_entries: __u32,
362    pub cq_entries: __u32,
363    pub flags: __u32,
364    pub sq_thread_cpu: __u32,
365    pub sq_thread_idle: __u32,
366    pub features: __u32,
367    pub wq_fd: __u32,
368    pub resv: [__u32; 3usize],
369    pub sq_off: io_sqring_offsets,
370    pub cq_off: io_cqring_offsets,
371}
372pub const IORING_REGISTER_BUFFERS: _bindgen_ty_4 = 0;
373pub const IORING_UNREGISTER_BUFFERS: _bindgen_ty_4 = 1;
374pub const IORING_REGISTER_FILES: _bindgen_ty_4 = 2;
375pub const IORING_UNREGISTER_FILES: _bindgen_ty_4 = 3;
376pub const IORING_REGISTER_EVENTFD: _bindgen_ty_4 = 4;
377pub const IORING_UNREGISTER_EVENTFD: _bindgen_ty_4 = 5;
378pub const IORING_REGISTER_FILES_UPDATE: _bindgen_ty_4 = 6;
379pub const IORING_REGISTER_EVENTFD_ASYNC: _bindgen_ty_4 = 7;
380pub const IORING_REGISTER_PROBE: _bindgen_ty_4 = 8;
381pub const IORING_REGISTER_PERSONALITY: _bindgen_ty_4 = 9;
382pub const IORING_UNREGISTER_PERSONALITY: _bindgen_ty_4 = 10;
383pub const IORING_REGISTER_RESTRICTIONS: _bindgen_ty_4 = 11;
384pub const IORING_REGISTER_ENABLE_RINGS: _bindgen_ty_4 = 12;
385pub const IORING_REGISTER_FILES2: _bindgen_ty_4 = 13;
386pub const IORING_REGISTER_FILES_UPDATE2: _bindgen_ty_4 = 14;
387pub const IORING_REGISTER_BUFFERS2: _bindgen_ty_4 = 15;
388pub const IORING_REGISTER_BUFFERS_UPDATE: _bindgen_ty_4 = 16;
389pub const IORING_REGISTER_IOWQ_AFF: _bindgen_ty_4 = 17;
390pub const IORING_UNREGISTER_IOWQ_AFF: _bindgen_ty_4 = 18;
391pub const IORING_REGISTER_IOWQ_MAX_WORKERS: _bindgen_ty_4 = 19;
392pub const IORING_REGISTER_RING_FDS: _bindgen_ty_4 = 20;
393pub const IORING_UNREGISTER_RING_FDS: _bindgen_ty_4 = 21;
394pub const IORING_REGISTER_PBUF_RING: _bindgen_ty_4 = 22;
395pub const IORING_UNREGISTER_PBUF_RING: _bindgen_ty_4 = 23;
396pub const IORING_REGISTER_SYNC_CANCEL: _bindgen_ty_4 = 24;
397pub const IORING_REGISTER_FILE_ALLOC_RANGE: _bindgen_ty_4 = 25;
398pub const IORING_REGISTER_LAST: _bindgen_ty_4 = 26;
399pub const IORING_REGISTER_USE_REGISTERED_RING: _bindgen_ty_4 = 2147483648;
400pub type _bindgen_ty_4 = ::core::ffi::c_uint;
401pub const IO_WQ_BOUND: _bindgen_ty_5 = 0;
402pub const IO_WQ_UNBOUND: _bindgen_ty_5 = 1;
403pub type _bindgen_ty_5 = ::core::ffi::c_uint;
404pub const IOU_PBUF_RING_MMAP: _bindgen_ty_6 = 1;
405pub type _bindgen_ty_6 = ::core::ffi::c_uint;
406pub const IORING_RESTRICTION_REGISTER_OP: _bindgen_ty_7 = 0;
407pub const IORING_RESTRICTION_SQE_OP: _bindgen_ty_7 = 1;
408pub const IORING_RESTRICTION_SQE_FLAGS_ALLOWED: _bindgen_ty_7 = 2;
409pub const IORING_RESTRICTION_SQE_FLAGS_REQUIRED: _bindgen_ty_7 = 3;
410pub const IORING_RESTRICTION_LAST: _bindgen_ty_7 = 4;
411pub type _bindgen_ty_7 = ::core::ffi::c_uint;