1#![allow(clippy::missing_safety_doc)]
4#![allow(clippy::undocumented_unsafe_blocks)]
5#![allow(clippy::upper_case_acronyms)]
6#![allow(non_upper_case_globals)]
7#![allow(non_camel_case_types)]
8#![allow(non_snake_case)]
9#![allow(dead_code)]
10
11#[repr(C)]
12#[derive(Default)]
13pub struct __IncompleteArrayField<T>(::std::marker::PhantomData<T>, [T; 0]);
14impl<T> __IncompleteArrayField<T> {
15 #[inline]
16 pub const fn new() -> Self {
17 __IncompleteArrayField(::std::marker::PhantomData, [])
18 }
19 #[inline]
20 pub fn as_ptr(&self) -> *const T {
21 self as *const _ as *const T
22 }
23 #[inline]
24 pub fn as_mut_ptr(&mut self) -> *mut T {
25 self as *mut _ as *mut T
26 }
27 #[inline]
28 pub unsafe fn as_slice(&self, len: usize) -> &[T] {
29 ::std::slice::from_raw_parts(self.as_ptr(), len)
30 }
31 #[inline]
32 pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
33 ::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
34 }
35}
36impl<T> ::std::fmt::Debug for __IncompleteArrayField<T> {
37 fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
38 fmt.write_str("__IncompleteArrayField")
39 }
40}
41#[repr(C)]
42pub struct __BindgenUnionField<T>(::std::marker::PhantomData<T>);
43impl<T> __BindgenUnionField<T> {
44 #[inline]
45 pub const fn new() -> Self {
46 __BindgenUnionField(::std::marker::PhantomData)
47 }
48 #[inline]
49 pub unsafe fn as_ref(&self) -> &T {
50 ::std::mem::transmute(self)
51 }
52 #[inline]
53 pub unsafe fn as_mut(&mut self) -> &mut T {
54 ::std::mem::transmute(self)
55 }
56}
57impl<T> ::std::default::Default for __BindgenUnionField<T> {
58 #[inline]
59 fn default() -> Self {
60 Self::new()
61 }
62}
63impl<T> ::std::clone::Clone for __BindgenUnionField<T> {
64 #[inline]
65 fn clone(&self) -> Self {
66 *self
67 }
68}
69impl<T> ::std::marker::Copy for __BindgenUnionField<T> {}
70impl<T> ::std::fmt::Debug for __BindgenUnionField<T> {
71 fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
72 fmt.write_str("__BindgenUnionField")
73 }
74}
75impl<T> ::std::hash::Hash for __BindgenUnionField<T> {
76 fn hash<H: ::std::hash::Hasher>(&self, _state: &mut H) {}
77}
78impl<T> ::std::cmp::PartialEq for __BindgenUnionField<T> {
79 fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
80 true
81 }
82}
83impl<T> ::std::cmp::Eq for __BindgenUnionField<T> {}
84pub const IORING_FILE_INDEX_ALLOC: i32 = -1;
85pub const IORING_SETUP_IOPOLL: u32 = 1;
86pub const IORING_SETUP_SQPOLL: u32 = 2;
87pub const IORING_SETUP_SQ_AFF: u32 = 4;
88pub const IORING_SETUP_CQSIZE: u32 = 8;
89pub const IORING_SETUP_CLAMP: u32 = 16;
90pub const IORING_SETUP_ATTACH_WQ: u32 = 32;
91pub const IORING_SETUP_R_DISABLED: u32 = 64;
92pub const IORING_SETUP_SUBMIT_ALL: u32 = 128;
93pub const IORING_SETUP_COOP_TASKRUN: u32 = 256;
94pub const IORING_SETUP_TASKRUN_FLAG: u32 = 512;
95pub const IORING_SETUP_SQE128: u32 = 1024;
96pub const IORING_SETUP_CQE32: u32 = 2048;
97pub const IORING_SETUP_SINGLE_ISSUER: u32 = 4096;
98pub const IORING_SETUP_DEFER_TASKRUN: u32 = 8192;
99pub const IORING_SETUP_NO_MMAP: u32 = 16384;
100pub const IORING_SETUP_REGISTERED_FD_ONLY: u32 = 32768;
101pub const IORING_SETUP_NO_SQARRAY: u32 = 65536;
102pub const IORING_URING_CMD_FIXED: u32 = 1;
103pub const IORING_URING_CMD_MASK: u32 = 1;
104pub const IORING_FSYNC_DATASYNC: u32 = 1;
105pub const IORING_TIMEOUT_ABS: u32 = 1;
106pub const IORING_TIMEOUT_UPDATE: u32 = 2;
107pub const IORING_TIMEOUT_BOOTTIME: u32 = 4;
108pub const IORING_TIMEOUT_REALTIME: u32 = 8;
109pub const IORING_LINK_TIMEOUT_UPDATE: u32 = 16;
110pub const IORING_TIMEOUT_ETIME_SUCCESS: u32 = 32;
111pub const IORING_TIMEOUT_MULTISHOT: u32 = 64;
112pub const IORING_TIMEOUT_CLOCK_MASK: u32 = 12;
113pub const IORING_TIMEOUT_UPDATE_MASK: u32 = 18;
114pub const IORING_POLL_ADD_MULTI: u32 = 1;
115pub const IORING_POLL_UPDATE_EVENTS: u32 = 2;
116pub const IORING_POLL_UPDATE_USER_DATA: u32 = 4;
117pub const IORING_POLL_ADD_LEVEL: u32 = 8;
118pub const IORING_ASYNC_CANCEL_ALL: u32 = 1;
119pub const IORING_ASYNC_CANCEL_FD: u32 = 2;
120pub const IORING_ASYNC_CANCEL_ANY: u32 = 4;
121pub const IORING_ASYNC_CANCEL_FD_FIXED: u32 = 8;
122pub const IORING_ASYNC_CANCEL_USERDATA: u32 = 16;
123pub const IORING_ASYNC_CANCEL_OP: u32 = 32;
124pub const IORING_RECVSEND_POLL_FIRST: u32 = 1;
125pub const IORING_RECV_MULTISHOT: u32 = 2;
126pub const IORING_RECVSEND_FIXED_BUF: u32 = 4;
127pub const IORING_SEND_ZC_REPORT_USAGE: u32 = 8;
128pub const IORING_RECVSEND_BUNDLE: u32 = 16;
129pub const IORING_NOTIF_USAGE_ZC_COPIED: u32 = 2147483648;
130pub const IORING_ACCEPT_MULTISHOT: u32 = 1;
131pub const IORING_ACCEPT_DONTWAIT: u32 = 2;
132pub const IORING_ACCEPT_POLL_FIRST: u32 = 4;
133pub const IORING_MSG_RING_CQE_SKIP: u32 = 1;
134pub const IORING_MSG_RING_FLAGS_PASS: u32 = 2;
135pub const IORING_FIXED_FD_NO_CLOEXEC: u32 = 1;
136pub const IORING_NOP_INJECT_RESULT: u32 = 1;
137pub const IORING_CQE_F_BUFFER: u32 = 1;
138pub const IORING_CQE_F_MORE: u32 = 2;
139pub const IORING_CQE_F_SOCK_NONEMPTY: u32 = 4;
140pub const IORING_CQE_F_NOTIF: u32 = 8;
141pub const IORING_CQE_F_BUF_MORE: u32 = 16;
142pub const IORING_CQE_BUFFER_SHIFT: u32 = 16;
143pub const IORING_OFF_SQ_RING: u32 = 0;
144pub const IORING_OFF_CQ_RING: u32 = 134217728;
145pub const IORING_OFF_SQES: u32 = 268435456;
146pub const IORING_OFF_PBUF_RING: u32 = 2147483648;
147pub const IORING_OFF_PBUF_SHIFT: u32 = 16;
148pub const IORING_OFF_MMAP_MASK: u32 = 4160749568;
149pub const IORING_SQ_NEED_WAKEUP: u32 = 1;
150pub const IORING_SQ_CQ_OVERFLOW: u32 = 2;
151pub const IORING_SQ_TASKRUN: u32 = 4;
152pub const IORING_CQ_EVENTFD_DISABLED: u32 = 1;
153pub const IORING_ENTER_GETEVENTS: u32 = 1;
154pub const IORING_ENTER_SQ_WAKEUP: u32 = 2;
155pub const IORING_ENTER_SQ_WAIT: u32 = 4;
156pub const IORING_ENTER_EXT_ARG: u32 = 8;
157pub const IORING_ENTER_REGISTERED_RING: u32 = 16;
158pub const IORING_ENTER_ABS_TIMER: u32 = 32;
159pub const IORING_FEAT_SINGLE_MMAP: u32 = 1;
160pub const IORING_FEAT_NODROP: u32 = 2;
161pub const IORING_FEAT_SUBMIT_STABLE: u32 = 4;
162pub const IORING_FEAT_RW_CUR_POS: u32 = 8;
163pub const IORING_FEAT_CUR_PERSONALITY: u32 = 16;
164pub const IORING_FEAT_FAST_POLL: u32 = 32;
165pub const IORING_FEAT_POLL_32BITS: u32 = 64;
166pub const IORING_FEAT_SQPOLL_NONFIXED: u32 = 128;
167pub const IORING_FEAT_EXT_ARG: u32 = 256;
168pub const IORING_FEAT_NATIVE_WORKERS: u32 = 512;
169pub const IORING_FEAT_RSRC_TAGS: u32 = 1024;
170pub const IORING_FEAT_CQE_SKIP: u32 = 2048;
171pub const IORING_FEAT_LINKED_FILE: u32 = 4096;
172pub const IORING_FEAT_REG_REG_RING: u32 = 8192;
173pub const IORING_FEAT_RECVSEND_BUNDLE: u32 = 16384;
174pub const IORING_FEAT_MIN_TIMEOUT: u32 = 32768;
175pub const IORING_RSRC_REGISTER_SPARSE: u32 = 1;
176pub const IORING_REGISTER_FILES_SKIP: i32 = -2;
177pub const IO_URING_OP_SUPPORTED: u32 = 1;
178pub type __kernel_time64_t = ::std::os::raw::c_longlong;
179pub type __kernel_rwf_t = ::std::os::raw::c_int;
180#[repr(C)]
181#[derive(Debug, Default, Copy, Clone)]
182pub struct __kernel_timespec {
183 pub tv_sec: __kernel_time64_t,
184 pub tv_nsec: ::std::os::raw::c_longlong,
185}
186#[repr(C)]
187pub struct io_uring_sqe {
188 pub opcode: u8,
189 pub flags: u8,
190 pub ioprio: u16,
191 pub fd: i32,
192 pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_1,
193 pub __bindgen_anon_2: io_uring_sqe__bindgen_ty_2,
194 pub len: u32,
195 pub __bindgen_anon_3: io_uring_sqe__bindgen_ty_3,
196 pub user_data: u64,
197 pub __bindgen_anon_4: io_uring_sqe__bindgen_ty_4,
198 pub personality: u16,
199 pub __bindgen_anon_5: io_uring_sqe__bindgen_ty_5,
200 pub __bindgen_anon_6: io_uring_sqe__bindgen_ty_6,
201}
202#[repr(C)]
203#[derive(Copy, Clone)]
204pub union io_uring_sqe__bindgen_ty_1 {
205 pub off: u64,
206 pub addr2: u64,
207 pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_1__bindgen_ty_1,
208}
209#[repr(C)]
210#[derive(Debug, Default, Copy, Clone)]
211pub struct io_uring_sqe__bindgen_ty_1__bindgen_ty_1 {
212 pub cmd_op: u32,
213 pub __pad1: u32,
214}
215impl Default for io_uring_sqe__bindgen_ty_1 {
216 fn default() -> Self {
217 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
218 unsafe {
219 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
220 s.assume_init()
221 }
222 }
223}
224#[repr(C)]
225#[derive(Copy, Clone)]
226pub union io_uring_sqe__bindgen_ty_2 {
227 pub addr: u64,
228 pub splice_off_in: u64,
229 pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_2__bindgen_ty_1,
230}
231#[repr(C)]
232#[derive(Debug, Default, Copy, Clone)]
233pub struct io_uring_sqe__bindgen_ty_2__bindgen_ty_1 {
234 pub level: u32,
235 pub optname: u32,
236}
237impl Default for io_uring_sqe__bindgen_ty_2 {
238 fn default() -> Self {
239 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
240 unsafe {
241 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
242 s.assume_init()
243 }
244 }
245}
246#[repr(C)]
247#[derive(Copy, Clone)]
248pub union io_uring_sqe__bindgen_ty_3 {
249 pub rw_flags: __kernel_rwf_t,
250 pub fsync_flags: u32,
251 pub poll_events: u16,
252 pub poll32_events: u32,
253 pub sync_range_flags: u32,
254 pub msg_flags: u32,
255 pub timeout_flags: u32,
256 pub accept_flags: u32,
257 pub cancel_flags: u32,
258 pub open_flags: u32,
259 pub statx_flags: u32,
260 pub fadvise_advice: u32,
261 pub splice_flags: u32,
262 pub rename_flags: u32,
263 pub unlink_flags: u32,
264 pub hardlink_flags: u32,
265 pub xattr_flags: u32,
266 pub msg_ring_flags: u32,
267 pub uring_cmd_flags: u32,
268 pub waitid_flags: u32,
269 pub futex_flags: u32,
270 pub install_fd_flags: u32,
271 pub nop_flags: u32,
272}
273impl Default for io_uring_sqe__bindgen_ty_3 {
274 fn default() -> Self {
275 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
276 unsafe {
277 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
278 s.assume_init()
279 }
280 }
281}
282#[repr(C, packed)]
283#[derive(Copy, Clone)]
284pub union io_uring_sqe__bindgen_ty_4 {
285 pub buf_index: u16,
286 pub buf_group: u16,
287}
288impl Default for io_uring_sqe__bindgen_ty_4 {
289 fn default() -> Self {
290 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
291 unsafe {
292 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
293 s.assume_init()
294 }
295 }
296}
297#[repr(C)]
298#[derive(Copy, Clone)]
299pub union io_uring_sqe__bindgen_ty_5 {
300 pub splice_fd_in: i32,
301 pub file_index: u32,
302 pub optlen: u32,
303 pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_5__bindgen_ty_1,
304}
305#[repr(C)]
306#[derive(Debug, Default, Copy, Clone)]
307pub struct io_uring_sqe__bindgen_ty_5__bindgen_ty_1 {
308 pub addr_len: u16,
309 pub __pad3: [u16; 1usize],
310}
311impl Default for io_uring_sqe__bindgen_ty_5 {
312 fn default() -> Self {
313 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
314 unsafe {
315 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
316 s.assume_init()
317 }
318 }
319}
320#[repr(C)]
321pub struct io_uring_sqe__bindgen_ty_6 {
322 pub __bindgen_anon_1: __BindgenUnionField<io_uring_sqe__bindgen_ty_6__bindgen_ty_1>,
323 pub optval: __BindgenUnionField<u64>,
324 pub cmd: __BindgenUnionField<[u8; 0usize]>,
325 pub bindgen_union_field: [u64; 2usize],
326}
327#[repr(C)]
328#[derive(Debug, Default, Copy, Clone)]
329pub struct io_uring_sqe__bindgen_ty_6__bindgen_ty_1 {
330 pub addr3: u64,
331 pub __pad2: [u64; 1usize],
332}
333impl Default for io_uring_sqe__bindgen_ty_6 {
334 fn default() -> Self {
335 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
336 unsafe {
337 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
338 s.assume_init()
339 }
340 }
341}
342impl Default for io_uring_sqe {
343 fn default() -> Self {
344 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
345 unsafe {
346 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
347 s.assume_init()
348 }
349 }
350}
351pub const io_uring_sqe_flags_bit_IOSQE_FIXED_FILE_BIT: io_uring_sqe_flags_bit = 0;
352pub const io_uring_sqe_flags_bit_IOSQE_IO_DRAIN_BIT: io_uring_sqe_flags_bit = 1;
353pub const io_uring_sqe_flags_bit_IOSQE_IO_LINK_BIT: io_uring_sqe_flags_bit = 2;
354pub const io_uring_sqe_flags_bit_IOSQE_IO_HARDLINK_BIT: io_uring_sqe_flags_bit = 3;
355pub const io_uring_sqe_flags_bit_IOSQE_ASYNC_BIT: io_uring_sqe_flags_bit = 4;
356pub const io_uring_sqe_flags_bit_IOSQE_BUFFER_SELECT_BIT: io_uring_sqe_flags_bit = 5;
357pub const io_uring_sqe_flags_bit_IOSQE_CQE_SKIP_SUCCESS_BIT: io_uring_sqe_flags_bit = 6;
358pub type io_uring_sqe_flags_bit = ::std::os::raw::c_uint;
359pub const io_uring_op_IORING_OP_NOP: io_uring_op = 0;
360pub const io_uring_op_IORING_OP_READV: io_uring_op = 1;
361pub const io_uring_op_IORING_OP_WRITEV: io_uring_op = 2;
362pub const io_uring_op_IORING_OP_FSYNC: io_uring_op = 3;
363pub const io_uring_op_IORING_OP_READ_FIXED: io_uring_op = 4;
364pub const io_uring_op_IORING_OP_WRITE_FIXED: io_uring_op = 5;
365pub const io_uring_op_IORING_OP_POLL_ADD: io_uring_op = 6;
366pub const io_uring_op_IORING_OP_POLL_REMOVE: io_uring_op = 7;
367pub const io_uring_op_IORING_OP_SYNC_FILE_RANGE: io_uring_op = 8;
368pub const io_uring_op_IORING_OP_SENDMSG: io_uring_op = 9;
369pub const io_uring_op_IORING_OP_RECVMSG: io_uring_op = 10;
370pub const io_uring_op_IORING_OP_TIMEOUT: io_uring_op = 11;
371pub const io_uring_op_IORING_OP_TIMEOUT_REMOVE: io_uring_op = 12;
372pub const io_uring_op_IORING_OP_ACCEPT: io_uring_op = 13;
373pub const io_uring_op_IORING_OP_ASYNC_CANCEL: io_uring_op = 14;
374pub const io_uring_op_IORING_OP_LINK_TIMEOUT: io_uring_op = 15;
375pub const io_uring_op_IORING_OP_CONNECT: io_uring_op = 16;
376pub const io_uring_op_IORING_OP_FALLOCATE: io_uring_op = 17;
377pub const io_uring_op_IORING_OP_OPENAT: io_uring_op = 18;
378pub const io_uring_op_IORING_OP_CLOSE: io_uring_op = 19;
379pub const io_uring_op_IORING_OP_FILES_UPDATE: io_uring_op = 20;
380pub const io_uring_op_IORING_OP_STATX: io_uring_op = 21;
381pub const io_uring_op_IORING_OP_READ: io_uring_op = 22;
382pub const io_uring_op_IORING_OP_WRITE: io_uring_op = 23;
383pub const io_uring_op_IORING_OP_FADVISE: io_uring_op = 24;
384pub const io_uring_op_IORING_OP_MADVISE: io_uring_op = 25;
385pub const io_uring_op_IORING_OP_SEND: io_uring_op = 26;
386pub const io_uring_op_IORING_OP_RECV: io_uring_op = 27;
387pub const io_uring_op_IORING_OP_OPENAT2: io_uring_op = 28;
388pub const io_uring_op_IORING_OP_EPOLL_CTL: io_uring_op = 29;
389pub const io_uring_op_IORING_OP_SPLICE: io_uring_op = 30;
390pub const io_uring_op_IORING_OP_PROVIDE_BUFFERS: io_uring_op = 31;
391pub const io_uring_op_IORING_OP_REMOVE_BUFFERS: io_uring_op = 32;
392pub const io_uring_op_IORING_OP_TEE: io_uring_op = 33;
393pub const io_uring_op_IORING_OP_SHUTDOWN: io_uring_op = 34;
394pub const io_uring_op_IORING_OP_RENAMEAT: io_uring_op = 35;
395pub const io_uring_op_IORING_OP_UNLINKAT: io_uring_op = 36;
396pub const io_uring_op_IORING_OP_MKDIRAT: io_uring_op = 37;
397pub const io_uring_op_IORING_OP_SYMLINKAT: io_uring_op = 38;
398pub const io_uring_op_IORING_OP_LINKAT: io_uring_op = 39;
399pub const io_uring_op_IORING_OP_MSG_RING: io_uring_op = 40;
400pub const io_uring_op_IORING_OP_FSETXATTR: io_uring_op = 41;
401pub const io_uring_op_IORING_OP_SETXATTR: io_uring_op = 42;
402pub const io_uring_op_IORING_OP_FGETXATTR: io_uring_op = 43;
403pub const io_uring_op_IORING_OP_GETXATTR: io_uring_op = 44;
404pub const io_uring_op_IORING_OP_SOCKET: io_uring_op = 45;
405pub const io_uring_op_IORING_OP_URING_CMD: io_uring_op = 46;
406pub const io_uring_op_IORING_OP_SEND_ZC: io_uring_op = 47;
407pub const io_uring_op_IORING_OP_SENDMSG_ZC: io_uring_op = 48;
408pub const io_uring_op_IORING_OP_READ_MULTISHOT: io_uring_op = 49;
409pub const io_uring_op_IORING_OP_WAITID: io_uring_op = 50;
410pub const io_uring_op_IORING_OP_FUTEX_WAIT: io_uring_op = 51;
411pub const io_uring_op_IORING_OP_FUTEX_WAKE: io_uring_op = 52;
412pub const io_uring_op_IORING_OP_FUTEX_WAITV: io_uring_op = 53;
413pub const io_uring_op_IORING_OP_FIXED_FD_INSTALL: io_uring_op = 54;
414pub const io_uring_op_IORING_OP_FTRUNCATE: io_uring_op = 55;
415pub const io_uring_op_IORING_OP_BIND: io_uring_op = 56;
416pub const io_uring_op_IORING_OP_LISTEN: io_uring_op = 57;
417pub const io_uring_op_IORING_OP_LAST: io_uring_op = 58;
418pub type io_uring_op = ::std::os::raw::c_uint;
419pub const io_uring_msg_ring_flags_IORING_MSG_DATA: io_uring_msg_ring_flags = 0;
420pub const io_uring_msg_ring_flags_IORING_MSG_SEND_FD: io_uring_msg_ring_flags = 1;
421pub type io_uring_msg_ring_flags = ::std::os::raw::c_uint;
422#[repr(C)]
423#[derive(Debug, Default)]
424pub struct io_uring_cqe {
425 pub user_data: u64,
426 pub res: i32,
427 pub flags: u32,
428 pub big_cqe: __IncompleteArrayField<u64>,
429}
430#[repr(C)]
431#[derive(Debug, Default, Copy, Clone)]
432pub struct io_sqring_offsets {
433 pub head: u32,
434 pub tail: u32,
435 pub ring_mask: u32,
436 pub ring_entries: u32,
437 pub flags: u32,
438 pub dropped: u32,
439 pub array: u32,
440 pub resv1: u32,
441 pub user_addr: u64,
442}
443#[repr(C)]
444#[derive(Debug, Default, Copy, Clone)]
445pub struct io_cqring_offsets {
446 pub head: u32,
447 pub tail: u32,
448 pub ring_mask: u32,
449 pub ring_entries: u32,
450 pub overflow: u32,
451 pub cqes: u32,
452 pub flags: u32,
453 pub resv1: u32,
454 pub user_addr: u64,
455}
456#[repr(C)]
457#[derive(Debug, Default, Copy, Clone)]
458pub struct io_uring_params {
459 pub sq_entries: u32,
460 pub cq_entries: u32,
461 pub flags: u32,
462 pub sq_thread_cpu: u32,
463 pub sq_thread_idle: u32,
464 pub features: u32,
465 pub wq_fd: u32,
466 pub resv: [u32; 3usize],
467 pub sq_off: io_sqring_offsets,
468 pub cq_off: io_cqring_offsets,
469}
470pub const io_uring_register_op_IORING_REGISTER_BUFFERS: io_uring_register_op = 0;
471pub const io_uring_register_op_IORING_UNREGISTER_BUFFERS: io_uring_register_op = 1;
472pub const io_uring_register_op_IORING_REGISTER_FILES: io_uring_register_op = 2;
473pub const io_uring_register_op_IORING_UNREGISTER_FILES: io_uring_register_op = 3;
474pub const io_uring_register_op_IORING_REGISTER_EVENTFD: io_uring_register_op = 4;
475pub const io_uring_register_op_IORING_UNREGISTER_EVENTFD: io_uring_register_op = 5;
476pub const io_uring_register_op_IORING_REGISTER_FILES_UPDATE: io_uring_register_op = 6;
477pub const io_uring_register_op_IORING_REGISTER_EVENTFD_ASYNC: io_uring_register_op = 7;
478pub const io_uring_register_op_IORING_REGISTER_PROBE: io_uring_register_op = 8;
479pub const io_uring_register_op_IORING_REGISTER_PERSONALITY: io_uring_register_op = 9;
480pub const io_uring_register_op_IORING_UNREGISTER_PERSONALITY: io_uring_register_op = 10;
481pub const io_uring_register_op_IORING_REGISTER_RESTRICTIONS: io_uring_register_op = 11;
482pub const io_uring_register_op_IORING_REGISTER_ENABLE_RINGS: io_uring_register_op = 12;
483pub const io_uring_register_op_IORING_REGISTER_FILES2: io_uring_register_op = 13;
484pub const io_uring_register_op_IORING_REGISTER_FILES_UPDATE2: io_uring_register_op = 14;
485pub const io_uring_register_op_IORING_REGISTER_BUFFERS2: io_uring_register_op = 15;
486pub const io_uring_register_op_IORING_REGISTER_BUFFERS_UPDATE: io_uring_register_op = 16;
487pub const io_uring_register_op_IORING_REGISTER_IOWQ_AFF: io_uring_register_op = 17;
488pub const io_uring_register_op_IORING_UNREGISTER_IOWQ_AFF: io_uring_register_op = 18;
489pub const io_uring_register_op_IORING_REGISTER_IOWQ_MAX_WORKERS: io_uring_register_op = 19;
490pub const io_uring_register_op_IORING_REGISTER_RING_FDS: io_uring_register_op = 20;
491pub const io_uring_register_op_IORING_UNREGISTER_RING_FDS: io_uring_register_op = 21;
492pub const io_uring_register_op_IORING_REGISTER_PBUF_RING: io_uring_register_op = 22;
493pub const io_uring_register_op_IORING_UNREGISTER_PBUF_RING: io_uring_register_op = 23;
494pub const io_uring_register_op_IORING_REGISTER_SYNC_CANCEL: io_uring_register_op = 24;
495pub const io_uring_register_op_IORING_REGISTER_FILE_ALLOC_RANGE: io_uring_register_op = 25;
496pub const io_uring_register_op_IORING_REGISTER_PBUF_STATUS: io_uring_register_op = 26;
497pub const io_uring_register_op_IORING_REGISTER_NAPI: io_uring_register_op = 27;
498pub const io_uring_register_op_IORING_UNREGISTER_NAPI: io_uring_register_op = 28;
499pub const io_uring_register_op_IORING_REGISTER_CLOCK: io_uring_register_op = 29;
500pub const io_uring_register_op_IORING_REGISTER_CLONE_BUFFERS: io_uring_register_op = 30;
501pub const io_uring_register_op_IORING_REGISTER_LAST: io_uring_register_op = 31;
502pub const io_uring_register_op_IORING_REGISTER_USE_REGISTERED_RING: io_uring_register_op =
503 2147483648;
504pub type io_uring_register_op = ::std::os::raw::c_uint;
505#[repr(C)]
506#[derive(Debug, Default, Copy, Clone)]
507pub struct io_uring_files_update {
508 pub offset: u32,
509 pub resv: u32,
510 pub fds: u64,
511}
512#[repr(C)]
513#[derive(Debug, Default, Copy, Clone)]
514pub struct io_uring_rsrc_register {
515 pub nr: u32,
516 pub flags: u32,
517 pub resv2: u64,
518 pub data: u64,
519 pub tags: u64,
520}
521#[repr(C)]
522#[derive(Debug, Default, Copy, Clone)]
523pub struct io_uring_rsrc_update {
524 pub offset: u32,
525 pub resv: u32,
526 pub data: u64,
527}
528#[repr(C)]
529#[derive(Debug, Default, Copy, Clone)]
530pub struct io_uring_rsrc_update2 {
531 pub offset: u32,
532 pub resv: u32,
533 pub data: u64,
534 pub tags: u64,
535 pub nr: u32,
536 pub resv2: u32,
537}
538#[repr(C)]
539#[derive(Debug, Default, Copy, Clone)]
540pub struct io_uring_probe_op {
541 pub op: u8,
542 pub resv: u8,
543 pub flags: u16,
544 pub resv2: u32,
545}
546#[repr(C)]
547#[derive(Debug, Default)]
548pub struct io_uring_probe {
549 pub last_op: u8,
550 pub ops_len: u8,
551 pub resv: u16,
552 pub resv2: [u32; 3usize],
553 pub ops: __IncompleteArrayField<io_uring_probe_op>,
554}
555#[repr(C)]
556#[derive(Copy, Clone)]
557pub struct io_uring_restriction {
558 pub opcode: u16,
559 pub __bindgen_anon_1: io_uring_restriction__bindgen_ty_1,
560 pub resv: u8,
561 pub resv2: [u32; 3usize],
562}
563#[repr(C)]
564#[derive(Copy, Clone)]
565pub union io_uring_restriction__bindgen_ty_1 {
566 pub register_op: u8,
567 pub sqe_op: u8,
568 pub sqe_flags: u8,
569}
570impl Default for io_uring_restriction__bindgen_ty_1 {
571 fn default() -> Self {
572 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
573 unsafe {
574 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
575 s.assume_init()
576 }
577 }
578}
579impl Default for io_uring_restriction {
580 fn default() -> Self {
581 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
582 unsafe {
583 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
584 s.assume_init()
585 }
586 }
587}
588#[repr(C)]
589#[derive(Debug, Default, Copy, Clone)]
590pub struct io_uring_clock_register {
591 pub clockid: u32,
592 pub __resv: [u32; 3usize],
593}
594pub const IORING_REGISTER_SRC_REGISTERED: _bindgen_ty_1 = 1;
595pub type _bindgen_ty_1 = ::std::os::raw::c_uint;
596#[repr(C)]
597#[derive(Debug, Default, Copy, Clone)]
598pub struct io_uring_clone_buffers {
599 pub src_fd: u32,
600 pub flags: u32,
601 pub pad: [u32; 6usize],
602}
603#[repr(C)]
604#[derive(Debug, Default, Copy, Clone)]
605pub struct io_uring_buf {
606 pub addr: u64,
607 pub len: u32,
608 pub bid: u16,
609 pub resv: u16,
610}
611#[repr(C)]
612pub struct io_uring_buf_ring {
613 pub __bindgen_anon_1: io_uring_buf_ring__bindgen_ty_1,
614}
615#[repr(C)]
616pub struct io_uring_buf_ring__bindgen_ty_1 {
617 pub __bindgen_anon_1: __BindgenUnionField<io_uring_buf_ring__bindgen_ty_1__bindgen_ty_1>,
618 pub __bindgen_anon_2: __BindgenUnionField<io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2>,
619 pub bindgen_union_field: [u64; 2usize],
620}
621#[repr(C)]
622#[derive(Debug, Default, Copy, Clone)]
623pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_1 {
624 pub resv1: u64,
625 pub resv2: u32,
626 pub resv3: u16,
627 pub tail: u16,
628}
629#[repr(C)]
630#[derive(Debug, Default)]
631pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2 {
632 pub __empty_bufs: io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1,
633 pub bufs: __IncompleteArrayField<io_uring_buf>,
634}
635#[repr(C)]
636#[derive(Debug, Default, Copy, Clone)]
637pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 {}
638impl Default for io_uring_buf_ring__bindgen_ty_1 {
639 fn default() -> Self {
640 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
641 unsafe {
642 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
643 s.assume_init()
644 }
645 }
646}
647impl Default for io_uring_buf_ring {
648 fn default() -> Self {
649 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
650 unsafe {
651 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
652 s.assume_init()
653 }
654 }
655}
656pub const io_uring_register_pbuf_ring_flags_IOU_PBUF_RING_MMAP: io_uring_register_pbuf_ring_flags =
657 1;
658pub const io_uring_register_pbuf_ring_flags_IOU_PBUF_RING_INC: io_uring_register_pbuf_ring_flags =
659 2;
660pub type io_uring_register_pbuf_ring_flags = ::std::os::raw::c_uint;
661#[repr(C)]
662#[derive(Debug, Default, Copy, Clone)]
663pub struct io_uring_buf_reg {
664 pub ring_addr: u64,
665 pub ring_entries: u32,
666 pub bgid: u16,
667 pub flags: u16,
668 pub resv: [u64; 3usize],
669}
670#[repr(C)]
671#[derive(Debug, Default, Copy, Clone)]
672pub struct io_uring_buf_status {
673 pub buf_group: u32,
674 pub head: u32,
675 pub resv: [u32; 8usize],
676}
677#[repr(C)]
678#[derive(Debug, Default, Copy, Clone)]
679pub struct io_uring_napi {
680 pub busy_poll_to: u32,
681 pub prefer_busy_poll: u8,
682 pub pad: [u8; 3usize],
683 pub resv: u64,
684}
685pub const io_uring_register_restriction_op_IORING_RESTRICTION_REGISTER_OP:
686 io_uring_register_restriction_op = 0;
687pub const io_uring_register_restriction_op_IORING_RESTRICTION_SQE_OP:
688 io_uring_register_restriction_op = 1;
689pub const io_uring_register_restriction_op_IORING_RESTRICTION_SQE_FLAGS_ALLOWED:
690 io_uring_register_restriction_op = 2;
691pub const io_uring_register_restriction_op_IORING_RESTRICTION_SQE_FLAGS_REQUIRED:
692 io_uring_register_restriction_op = 3;
693pub const io_uring_register_restriction_op_IORING_RESTRICTION_LAST:
694 io_uring_register_restriction_op = 4;
695pub type io_uring_register_restriction_op = ::std::os::raw::c_uint;
696#[repr(C)]
697#[derive(Debug, Default, Copy, Clone)]
698pub struct io_uring_getevents_arg {
699 pub sigmask: u64,
700 pub sigmask_sz: u32,
701 pub min_wait_usec: u32,
702 pub ts: u64,
703}
704#[repr(C)]
705#[derive(Debug, Default, Copy, Clone)]
706pub struct io_uring_sync_cancel_reg {
707 pub addr: u64,
708 pub fd: i32,
709 pub flags: u32,
710 pub timeout: __kernel_timespec,
711 pub opcode: u8,
712 pub pad: [u8; 7usize],
713 pub pad2: [u64; 3usize],
714}
715#[repr(C)]
716#[derive(Debug, Default, Copy, Clone)]
717pub struct io_uring_file_index_range {
718 pub off: u32,
719 pub len: u32,
720 pub resv: u64,
721}
722#[repr(C)]
723#[derive(Debug, Default, Copy, Clone)]
724pub struct io_uring_recvmsg_out {
725 pub namelen: u32,
726 pub controllen: u32,
727 pub payloadlen: u32,
728 pub flags: u32,
729}
730pub const io_uring_socket_op_SOCKET_URING_OP_SIOCINQ: io_uring_socket_op = 0;
731pub const io_uring_socket_op_SOCKET_URING_OP_SIOCOUTQ: io_uring_socket_op = 1;
732pub const io_uring_socket_op_SOCKET_URING_OP_GETSOCKOPT: io_uring_socket_op = 2;
733pub const io_uring_socket_op_SOCKET_URING_OP_SETSOCKOPT: io_uring_socket_op = 3;
734pub type io_uring_socket_op = ::std::os::raw::c_uint;