1 /* automatically generated by rust-bindgen
2  *
3  * bindgen --with-derive-default include/uapi/linux/io_uring.h
4  */
5 
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)]
13 pub struct __IncompleteArrayField<T>(::std::marker::PhantomData<T>);
14 impl<T> __IncompleteArrayField<T> {
15     #[inline]
new() -> Self16     pub fn new() -> Self {
17         __IncompleteArrayField(::std::marker::PhantomData)
18     }
19     #[inline]
as_ptr(&self) -> *const T20     pub unsafe fn as_ptr(&self) -> *const T {
21         ::std::mem::transmute(self)
22     }
23     #[inline]
as_mut_ptr(&mut self) -> *mut T24     pub unsafe fn as_mut_ptr(&mut self) -> *mut T {
25         ::std::mem::transmute(self)
26     }
27     #[inline]
as_slice(&self, len: usize) -> &[T]28     pub unsafe fn as_slice(&self, len: usize) -> &[T] {
29         ::std::slice::from_raw_parts(self.as_ptr(), len)
30     }
31     #[inline]
as_mut_slice(&mut self, len: usize) -> &mut [T]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 }
36 impl<T> ::std::fmt::Debug for __IncompleteArrayField<T> {
fmt(&self, fmt: &mut ::std::fmt::Formatter) -> ::std::fmt::Result37     fn fmt(&self, fmt: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
38         fmt.write_str("__IncompleteArrayField")
39     }
40 }
41 impl<T> ::std::clone::Clone for __IncompleteArrayField<T> {
42     #[inline]
clone(&self) -> Self43     fn clone(&self) -> Self {
44         Self::new()
45     }
46 }
47 impl<T> ::std::marker::Copy for __IncompleteArrayField<T> {}
48 pub const NR_OPEN: ::std::os::raw::c_uint = 1024;
49 pub const NGROUPS_MAX: ::std::os::raw::c_uint = 65536;
50 pub const ARG_MAX: ::std::os::raw::c_uint = 131072;
51 pub const LINK_MAX: ::std::os::raw::c_uint = 127;
52 pub const MAX_CANON: ::std::os::raw::c_uint = 255;
53 pub const MAX_INPUT: ::std::os::raw::c_uint = 255;
54 pub const NAME_MAX: ::std::os::raw::c_uint = 255;
55 pub const PATH_MAX: ::std::os::raw::c_uint = 4096;
56 pub const PIPE_BUF: ::std::os::raw::c_uint = 4096;
57 pub const XATTR_NAME_MAX: ::std::os::raw::c_uint = 255;
58 pub const XATTR_SIZE_MAX: ::std::os::raw::c_uint = 65536;
59 pub const XATTR_LIST_MAX: ::std::os::raw::c_uint = 65536;
60 pub const RTSIG_MAX: ::std::os::raw::c_uint = 32;
61 pub const _IOC_NRBITS: ::std::os::raw::c_uint = 8;
62 pub const _IOC_TYPEBITS: ::std::os::raw::c_uint = 8;
63 pub const _IOC_SIZEBITS: ::std::os::raw::c_uint = 14;
64 pub const _IOC_DIRBITS: ::std::os::raw::c_uint = 2;
65 pub const _IOC_NRMASK: ::std::os::raw::c_uint = 255;
66 pub const _IOC_TYPEMASK: ::std::os::raw::c_uint = 255;
67 pub const _IOC_SIZEMASK: ::std::os::raw::c_uint = 16383;
68 pub const _IOC_DIRMASK: ::std::os::raw::c_uint = 3;
69 pub const _IOC_NRSHIFT: ::std::os::raw::c_uint = 0;
70 pub const _IOC_TYPESHIFT: ::std::os::raw::c_uint = 8;
71 pub const _IOC_SIZESHIFT: ::std::os::raw::c_uint = 16;
72 pub const _IOC_DIRSHIFT: ::std::os::raw::c_uint = 30;
73 pub const _IOC_NONE: ::std::os::raw::c_uint = 0;
74 pub const _IOC_WRITE: ::std::os::raw::c_uint = 1;
75 pub const _IOC_READ: ::std::os::raw::c_uint = 2;
76 pub const IOC_IN: ::std::os::raw::c_uint = 1073741824;
77 pub const IOC_OUT: ::std::os::raw::c_uint = 2147483648;
78 pub const IOC_INOUT: ::std::os::raw::c_uint = 3221225472;
79 pub const IOCSIZE_MASK: ::std::os::raw::c_uint = 1073676288;
80 pub const IOCSIZE_SHIFT: ::std::os::raw::c_uint = 16;
81 pub const __BITS_PER_LONG: ::std::os::raw::c_uint = 64;
82 pub const __FD_SETSIZE: ::std::os::raw::c_uint = 1024;
83 pub const MS_RDONLY: ::std::os::raw::c_uint = 1;
84 pub const MS_NOSUID: ::std::os::raw::c_uint = 2;
85 pub const MS_NODEV: ::std::os::raw::c_uint = 4;
86 pub const MS_NOEXEC: ::std::os::raw::c_uint = 8;
87 pub const MS_SYNCHRONOUS: ::std::os::raw::c_uint = 16;
88 pub const MS_REMOUNT: ::std::os::raw::c_uint = 32;
89 pub const MS_MANDLOCK: ::std::os::raw::c_uint = 64;
90 pub const MS_DIRSYNC: ::std::os::raw::c_uint = 128;
91 pub const MS_NOATIME: ::std::os::raw::c_uint = 1024;
92 pub const MS_NODIRATIME: ::std::os::raw::c_uint = 2048;
93 pub const MS_BIND: ::std::os::raw::c_uint = 4096;
94 pub const MS_MOVE: ::std::os::raw::c_uint = 8192;
95 pub const MS_REC: ::std::os::raw::c_uint = 16384;
96 pub const MS_VERBOSE: ::std::os::raw::c_uint = 32768;
97 pub const MS_SILENT: ::std::os::raw::c_uint = 32768;
98 pub const MS_POSIXACL: ::std::os::raw::c_uint = 65536;
99 pub const MS_UNBINDABLE: ::std::os::raw::c_uint = 131072;
100 pub const MS_PRIVATE: ::std::os::raw::c_uint = 262144;
101 pub const MS_SLAVE: ::std::os::raw::c_uint = 524288;
102 pub const MS_SHARED: ::std::os::raw::c_uint = 1048576;
103 pub const MS_RELATIME: ::std::os::raw::c_uint = 2097152;
104 pub const MS_KERNMOUNT: ::std::os::raw::c_uint = 4194304;
105 pub const MS_I_VERSION: ::std::os::raw::c_uint = 8388608;
106 pub const MS_STRICTATIME: ::std::os::raw::c_uint = 16777216;
107 pub const MS_LAZYTIME: ::std::os::raw::c_uint = 33554432;
108 pub const MS_SUBMOUNT: ::std::os::raw::c_uint = 67108864;
109 pub const MS_NOREMOTELOCK: ::std::os::raw::c_uint = 134217728;
110 pub const MS_NOSEC: ::std::os::raw::c_uint = 268435456;
111 pub const MS_BORN: ::std::os::raw::c_uint = 536870912;
112 pub const MS_ACTIVE: ::std::os::raw::c_uint = 1073741824;
113 pub const MS_NOUSER: ::std::os::raw::c_uint = 2147483648;
114 pub const MS_RMT_MASK: ::std::os::raw::c_uint = 41943121;
115 pub const MS_MGC_VAL: ::std::os::raw::c_uint = 3236757504;
116 pub const MS_MGC_MSK: ::std::os::raw::c_uint = 4294901760;
117 pub const OPEN_TREE_CLONE: ::std::os::raw::c_uint = 1;
118 pub const MOVE_MOUNT_F_SYMLINKS: ::std::os::raw::c_uint = 1;
119 pub const MOVE_MOUNT_F_AUTOMOUNTS: ::std::os::raw::c_uint = 2;
120 pub const MOVE_MOUNT_F_EMPTY_PATH: ::std::os::raw::c_uint = 4;
121 pub const MOVE_MOUNT_T_SYMLINKS: ::std::os::raw::c_uint = 16;
122 pub const MOVE_MOUNT_T_AUTOMOUNTS: ::std::os::raw::c_uint = 32;
123 pub const MOVE_MOUNT_T_EMPTY_PATH: ::std::os::raw::c_uint = 64;
124 pub const MOVE_MOUNT__MASK: ::std::os::raw::c_uint = 119;
125 pub const FSOPEN_CLOEXEC: ::std::os::raw::c_uint = 1;
126 pub const FSPICK_CLOEXEC: ::std::os::raw::c_uint = 1;
127 pub const FSPICK_SYMLINK_NOFOLLOW: ::std::os::raw::c_uint = 2;
128 pub const FSPICK_NO_AUTOMOUNT: ::std::os::raw::c_uint = 4;
129 pub const FSPICK_EMPTY_PATH: ::std::os::raw::c_uint = 8;
130 pub const FSMOUNT_CLOEXEC: ::std::os::raw::c_uint = 1;
131 pub const MOUNT_ATTR_RDONLY: ::std::os::raw::c_uint = 1;
132 pub const MOUNT_ATTR_NOSUID: ::std::os::raw::c_uint = 2;
133 pub const MOUNT_ATTR_NODEV: ::std::os::raw::c_uint = 4;
134 pub const MOUNT_ATTR_NOEXEC: ::std::os::raw::c_uint = 8;
135 pub const MOUNT_ATTR__ATIME: ::std::os::raw::c_uint = 112;
136 pub const MOUNT_ATTR_RELATIME: ::std::os::raw::c_uint = 0;
137 pub const MOUNT_ATTR_NOATIME: ::std::os::raw::c_uint = 16;
138 pub const MOUNT_ATTR_STRICTATIME: ::std::os::raw::c_uint = 32;
139 pub const MOUNT_ATTR_NODIRATIME: ::std::os::raw::c_uint = 128;
140 pub const INR_OPEN_CUR: ::std::os::raw::c_uint = 1024;
141 pub const INR_OPEN_MAX: ::std::os::raw::c_uint = 4096;
142 pub const BLOCK_SIZE_BITS: ::std::os::raw::c_uint = 10;
143 pub const BLOCK_SIZE: ::std::os::raw::c_uint = 1024;
144 pub const SEEK_SET: ::std::os::raw::c_uint = 0;
145 pub const SEEK_CUR: ::std::os::raw::c_uint = 1;
146 pub const SEEK_END: ::std::os::raw::c_uint = 2;
147 pub const SEEK_DATA: ::std::os::raw::c_uint = 3;
148 pub const SEEK_HOLE: ::std::os::raw::c_uint = 4;
149 pub const SEEK_MAX: ::std::os::raw::c_uint = 4;
150 pub const RENAME_NOREPLACE: ::std::os::raw::c_uint = 1;
151 pub const RENAME_EXCHANGE: ::std::os::raw::c_uint = 2;
152 pub const RENAME_WHITEOUT: ::std::os::raw::c_uint = 4;
153 pub const FILE_DEDUPE_RANGE_SAME: ::std::os::raw::c_uint = 0;
154 pub const FILE_DEDUPE_RANGE_DIFFERS: ::std::os::raw::c_uint = 1;
155 pub const NR_FILE: ::std::os::raw::c_uint = 8192;
156 pub const FS_XFLAG_REALTIME: ::std::os::raw::c_uint = 1;
157 pub const FS_XFLAG_PREALLOC: ::std::os::raw::c_uint = 2;
158 pub const FS_XFLAG_IMMUTABLE: ::std::os::raw::c_uint = 8;
159 pub const FS_XFLAG_APPEND: ::std::os::raw::c_uint = 16;
160 pub const FS_XFLAG_SYNC: ::std::os::raw::c_uint = 32;
161 pub const FS_XFLAG_NOATIME: ::std::os::raw::c_uint = 64;
162 pub const FS_XFLAG_NODUMP: ::std::os::raw::c_uint = 128;
163 pub const FS_XFLAG_RTINHERIT: ::std::os::raw::c_uint = 256;
164 pub const FS_XFLAG_PROJINHERIT: ::std::os::raw::c_uint = 512;
165 pub const FS_XFLAG_NOSYMLINKS: ::std::os::raw::c_uint = 1024;
166 pub const FS_XFLAG_EXTSIZE: ::std::os::raw::c_uint = 2048;
167 pub const FS_XFLAG_EXTSZINHERIT: ::std::os::raw::c_uint = 4096;
168 pub const FS_XFLAG_NODEFRAG: ::std::os::raw::c_uint = 8192;
169 pub const FS_XFLAG_FILESTREAM: ::std::os::raw::c_uint = 16384;
170 pub const FS_XFLAG_DAX: ::std::os::raw::c_uint = 32768;
171 pub const FS_XFLAG_COWEXTSIZE: ::std::os::raw::c_uint = 65536;
172 pub const FS_XFLAG_HASATTR: ::std::os::raw::c_uint = 2147483648;
173 pub const BMAP_IOCTL: ::std::os::raw::c_uint = 1;
174 pub const FSLABEL_MAX: ::std::os::raw::c_uint = 256;
175 pub const FS_KEY_DESCRIPTOR_SIZE: ::std::os::raw::c_uint = 8;
176 pub const FS_POLICY_FLAGS_PAD_4: ::std::os::raw::c_uint = 0;
177 pub const FS_POLICY_FLAGS_PAD_8: ::std::os::raw::c_uint = 1;
178 pub const FS_POLICY_FLAGS_PAD_16: ::std::os::raw::c_uint = 2;
179 pub const FS_POLICY_FLAGS_PAD_32: ::std::os::raw::c_uint = 3;
180 pub const FS_POLICY_FLAGS_PAD_MASK: ::std::os::raw::c_uint = 3;
181 pub const FS_POLICY_FLAG_DIRECT_KEY: ::std::os::raw::c_uint = 4;
182 pub const FS_POLICY_FLAGS_VALID: ::std::os::raw::c_uint = 7;
183 pub const FS_ENCRYPTION_MODE_INVALID: ::std::os::raw::c_uint = 0;
184 pub const FS_ENCRYPTION_MODE_AES_256_XTS: ::std::os::raw::c_uint = 1;
185 pub const FS_ENCRYPTION_MODE_AES_256_GCM: ::std::os::raw::c_uint = 2;
186 pub const FS_ENCRYPTION_MODE_AES_256_CBC: ::std::os::raw::c_uint = 3;
187 pub const FS_ENCRYPTION_MODE_AES_256_CTS: ::std::os::raw::c_uint = 4;
188 pub const FS_ENCRYPTION_MODE_AES_128_CBC: ::std::os::raw::c_uint = 5;
189 pub const FS_ENCRYPTION_MODE_AES_128_CTS: ::std::os::raw::c_uint = 6;
190 pub const FS_ENCRYPTION_MODE_SPECK128_256_XTS: ::std::os::raw::c_uint = 7;
191 pub const FS_ENCRYPTION_MODE_SPECK128_256_CTS: ::std::os::raw::c_uint = 8;
192 pub const FS_ENCRYPTION_MODE_ADIANTUM: ::std::os::raw::c_uint = 9;
193 pub const FS_KEY_DESC_PREFIX: &[u8; 9usize] = b"fscrypt:\0";
194 pub const FS_KEY_DESC_PREFIX_SIZE: ::std::os::raw::c_uint = 8;
195 pub const FS_MAX_KEY_SIZE: ::std::os::raw::c_uint = 64;
196 pub const FS_SECRM_FL: ::std::os::raw::c_uint = 1;
197 pub const FS_UNRM_FL: ::std::os::raw::c_uint = 2;
198 pub const FS_COMPR_FL: ::std::os::raw::c_uint = 4;
199 pub const FS_SYNC_FL: ::std::os::raw::c_uint = 8;
200 pub const FS_IMMUTABLE_FL: ::std::os::raw::c_uint = 16;
201 pub const FS_APPEND_FL: ::std::os::raw::c_uint = 32;
202 pub const FS_NODUMP_FL: ::std::os::raw::c_uint = 64;
203 pub const FS_NOATIME_FL: ::std::os::raw::c_uint = 128;
204 pub const FS_DIRTY_FL: ::std::os::raw::c_uint = 256;
205 pub const FS_COMPRBLK_FL: ::std::os::raw::c_uint = 512;
206 pub const FS_NOCOMP_FL: ::std::os::raw::c_uint = 1024;
207 pub const FS_ENCRYPT_FL: ::std::os::raw::c_uint = 2048;
208 pub const FS_BTREE_FL: ::std::os::raw::c_uint = 4096;
209 pub const FS_INDEX_FL: ::std::os::raw::c_uint = 4096;
210 pub const FS_IMAGIC_FL: ::std::os::raw::c_uint = 8192;
211 pub const FS_JOURNAL_DATA_FL: ::std::os::raw::c_uint = 16384;
212 pub const FS_NOTAIL_FL: ::std::os::raw::c_uint = 32768;
213 pub const FS_DIRSYNC_FL: ::std::os::raw::c_uint = 65536;
214 pub const FS_TOPDIR_FL: ::std::os::raw::c_uint = 131072;
215 pub const FS_HUGE_FILE_FL: ::std::os::raw::c_uint = 262144;
216 pub const FS_EXTENT_FL: ::std::os::raw::c_uint = 524288;
217 pub const FS_EA_INODE_FL: ::std::os::raw::c_uint = 2097152;
218 pub const FS_EOFBLOCKS_FL: ::std::os::raw::c_uint = 4194304;
219 pub const FS_NOCOW_FL: ::std::os::raw::c_uint = 8388608;
220 pub const FS_INLINE_DATA_FL: ::std::os::raw::c_uint = 268435456;
221 pub const FS_PROJINHERIT_FL: ::std::os::raw::c_uint = 536870912;
222 pub const FS_RESERVED_FL: ::std::os::raw::c_uint = 2147483648;
223 pub const FS_FL_USER_VISIBLE: ::std::os::raw::c_uint = 253951;
224 pub const FS_FL_USER_MODIFIABLE: ::std::os::raw::c_uint = 229631;
225 pub const SYNC_FILE_RANGE_WAIT_BEFORE: ::std::os::raw::c_uint = 1;
226 pub const SYNC_FILE_RANGE_WRITE: ::std::os::raw::c_uint = 2;
227 pub const SYNC_FILE_RANGE_WAIT_AFTER: ::std::os::raw::c_uint = 4;
228 pub const SYNC_FILE_RANGE_WRITE_AND_WAIT: ::std::os::raw::c_uint = 7;
229 pub const IORING_SETUP_IOPOLL: ::std::os::raw::c_uint = 1;
230 pub const IORING_SETUP_SQPOLL: ::std::os::raw::c_uint = 2;
231 pub const IORING_SETUP_SQ_AFF: ::std::os::raw::c_uint = 4;
232 pub const IORING_SETUP_CQSIZE: ::std::os::raw::c_uint = 8;
233 pub const IORING_SETUP_CLAMP: ::std::os::raw::c_uint = 16;
234 pub const IORING_SETUP_ATTACH_WQ: ::std::os::raw::c_uint = 32;
235 pub const IORING_FSYNC_DATASYNC: ::std::os::raw::c_uint = 1;
236 pub const IORING_TIMEOUT_ABS: ::std::os::raw::c_uint = 1;
237 pub const IORING_OFF_SQ_RING: ::std::os::raw::c_uint = 0;
238 pub const IORING_OFF_CQ_RING: ::std::os::raw::c_uint = 134217728;
239 pub const IORING_OFF_SQES: ::std::os::raw::c_uint = 268435456;
240 pub const IORING_SQ_NEED_WAKEUP: ::std::os::raw::c_uint = 1;
241 pub const IORING_ENTER_GETEVENTS: ::std::os::raw::c_uint = 1;
242 pub const IORING_ENTER_SQ_WAKEUP: ::std::os::raw::c_uint = 2;
243 pub const IORING_FEAT_SINGLE_MMAP: ::std::os::raw::c_uint = 1;
244 pub const IORING_FEAT_NODROP: ::std::os::raw::c_uint = 2;
245 pub const IORING_FEAT_SUBMIT_STABLE: ::std::os::raw::c_uint = 4;
246 pub const IORING_FEAT_RW_CUR_POS: ::std::os::raw::c_uint = 8;
247 pub const IORING_FEAT_CUR_PERSONALITY: ::std::os::raw::c_uint = 16;
248 pub const IORING_REGISTER_BUFFERS: ::std::os::raw::c_uint = 0;
249 pub const IORING_UNREGISTER_BUFFERS: ::std::os::raw::c_uint = 1;
250 pub const IORING_REGISTER_FILES: ::std::os::raw::c_uint = 2;
251 pub const IORING_UNREGISTER_FILES: ::std::os::raw::c_uint = 3;
252 pub const IORING_REGISTER_EVENTFD: ::std::os::raw::c_uint = 4;
253 pub const IORING_UNREGISTER_EVENTFD: ::std::os::raw::c_uint = 5;
254 pub const IORING_REGISTER_FILES_UPDATE: ::std::os::raw::c_uint = 6;
255 pub const IORING_REGISTER_EVENTFD_ASYNC: ::std::os::raw::c_uint = 7;
256 pub const IORING_REGISTER_PROBE: ::std::os::raw::c_uint = 8;
257 pub const IORING_REGISTER_PERSONALITY: ::std::os::raw::c_uint = 9;
258 pub const IORING_UNREGISTER_PERSONALITY: ::std::os::raw::c_uint = 10;
259 pub const IO_URING_OP_SUPPORTED: ::std::os::raw::c_uint = 1;
260 #[repr(C)]
261 #[derive(Debug, Default, Copy, Clone)]
262 pub struct file_clone_range {
263     pub src_fd: i64,
264     pub src_offset: u64,
265     pub src_length: u64,
266     pub dest_offset: u64,
267 }
268 #[repr(C)]
269 #[derive(Debug, Default, Copy, Clone)]
270 pub struct fstrim_range {
271     pub start: u64,
272     pub len: u64,
273     pub minlen: u64,
274 }
275 #[repr(C)]
276 #[derive(Debug, Default, Copy, Clone)]
277 pub struct file_dedupe_range_info {
278     pub dest_fd: i64,
279     pub dest_offset: u64,
280     pub bytes_deduped: u64,
281     pub status: i32,
282     pub reserved: u32,
283 }
284 #[repr(C)]
285 #[derive(Debug, Default)]
286 pub struct file_dedupe_range {
287     pub src_offset: u64,
288     pub src_length: u64,
289     pub dest_count: u16,
290     pub reserved1: u16,
291     pub reserved2: u32,
292     pub info: __IncompleteArrayField<file_dedupe_range_info>,
293 }
294 #[repr(C)]
295 #[derive(Debug, Default, Copy, Clone)]
296 pub struct files_stat_struct {
297     pub nr_files: ::std::os::raw::c_ulong,
298     pub nr_free_files: ::std::os::raw::c_ulong,
299     pub max_files: ::std::os::raw::c_ulong,
300 }
301 #[repr(C)]
302 #[derive(Debug, Default, Copy, Clone)]
303 pub struct inodes_stat_t {
304     pub nr_inodes: ::std::os::raw::c_long,
305     pub nr_unused: ::std::os::raw::c_long,
306     pub dummy: [::std::os::raw::c_long; 5usize],
307 }
308 #[repr(C)]
309 #[derive(Debug, Default, Copy, Clone)]
310 pub struct fsxattr {
311     pub fsx_xflags: u32,
312     pub fsx_extsize: u32,
313     pub fsx_nextents: u32,
314     pub fsx_projid: u32,
315     pub fsx_cowextsize: u32,
316     pub fsx_pad: [::std::os::raw::c_uchar; 8usize],
317 }
318 #[repr(C)]
319 #[derive(Debug, Default, Copy, Clone)]
320 pub struct fscrypt_policy {
321     pub version: u8,
322     pub contents_encryption_mode: u8,
323     pub filenames_encryption_mode: u8,
324     pub flags: u8,
325     pub master_key_descriptor: [u8; 8usize],
326 }
327 #[repr(C)]
328 #[derive(Copy, Clone)]
329 pub struct fscrypt_key {
330     pub mode: u32,
331     pub raw: [u8; 64usize],
332     pub size: u32,
333 }
334 impl Default for fscrypt_key {
default() -> Self335     fn default() -> Self {
336         unsafe { ::std::mem::zeroed() }
337     }
338 }
339 pub type __kernel_rwf_t = ::std::os::raw::c_int;
340 #[repr(C)]
341 #[derive(Copy, Clone)]
342 pub struct io_uring_sqe {
343     pub opcode: u8,
344     pub flags: u8,
345     pub ioprio: u16,
346     pub fd: i32,
347     pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_1,
348     pub addr: u64,
349     pub len: u32,
350     pub __bindgen_anon_2: io_uring_sqe__bindgen_ty_2,
351     pub user_data: u64,
352     pub __bindgen_anon_3: io_uring_sqe__bindgen_ty_3,
353 }
354 #[repr(C)]
355 #[derive(Copy, Clone)]
356 pub union io_uring_sqe__bindgen_ty_1 {
357     pub off: u64,
358     pub addr2: u64,
359     _bindgen_union_align: u64,
360 }
361 impl Default for io_uring_sqe__bindgen_ty_1 {
default() -> Self362     fn default() -> Self {
363         unsafe { ::std::mem::zeroed() }
364     }
365 }
366 #[repr(C)]
367 #[derive(Copy, Clone)]
368 pub union io_uring_sqe__bindgen_ty_2 {
369     pub rw_flags: __kernel_rwf_t,
370     pub fsync_flags: u32,
371     pub poll_events: u16,
372     pub sync_range_flags: u32,
373     pub msg_flags: u32,
374     pub timeout_flags: u32,
375     pub accept_flags: u32,
376     pub cancel_flags: u32,
377     pub open_flags: u32,
378     pub statx_flags: u32,
379     pub fadvise_advice: u32,
380     _bindgen_union_align: u32,
381 }
382 impl Default for io_uring_sqe__bindgen_ty_2 {
default() -> Self383     fn default() -> Self {
384         unsafe { ::std::mem::zeroed() }
385     }
386 }
387 #[repr(C)]
388 #[derive(Copy, Clone)]
389 pub union io_uring_sqe__bindgen_ty_3 {
390     pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_3__bindgen_ty_1,
391     pub __pad2: [u64; 3usize],
392     _bindgen_union_align: [u64; 3usize],
393 }
394 #[repr(C)]
395 #[derive(Debug, Default, Copy, Clone)]
396 pub struct io_uring_sqe__bindgen_ty_3__bindgen_ty_1 {
397     pub buf_index: u16,
398     pub personality: u16,
399 }
400 impl Default for io_uring_sqe__bindgen_ty_3 {
default() -> Self401     fn default() -> Self {
402         unsafe { ::std::mem::zeroed() }
403     }
404 }
405 impl Default for io_uring_sqe {
default() -> Self406     fn default() -> Self {
407         unsafe { ::std::mem::zeroed() }
408     }
409 }
410 pub const IOSQE_FIXED_FILE_BIT: _bindgen_ty_1 = 0;
411 pub const IOSQE_IO_DRAIN_BIT: _bindgen_ty_1 = 1;
412 pub const IOSQE_IO_LINK_BIT: _bindgen_ty_1 = 2;
413 pub const IOSQE_IO_HARDLINK_BIT: _bindgen_ty_1 = 3;
414 pub const IOSQE_ASYNC_BIT: _bindgen_ty_1 = 4;
415 pub type _bindgen_ty_1 = ::std::os::raw::c_uint;
416 pub const IORING_OP_NOP: _bindgen_ty_2 = 0;
417 pub const IORING_OP_READV: _bindgen_ty_2 = 1;
418 pub const IORING_OP_WRITEV: _bindgen_ty_2 = 2;
419 pub const IORING_OP_FSYNC: _bindgen_ty_2 = 3;
420 pub const IORING_OP_READ_FIXED: _bindgen_ty_2 = 4;
421 pub const IORING_OP_WRITE_FIXED: _bindgen_ty_2 = 5;
422 pub const IORING_OP_POLL_ADD: _bindgen_ty_2 = 6;
423 pub const IORING_OP_POLL_REMOVE: _bindgen_ty_2 = 7;
424 pub const IORING_OP_SYNC_FILE_RANGE: _bindgen_ty_2 = 8;
425 pub const IORING_OP_SENDMSG: _bindgen_ty_2 = 9;
426 pub const IORING_OP_RECVMSG: _bindgen_ty_2 = 10;
427 pub const IORING_OP_TIMEOUT: _bindgen_ty_2 = 11;
428 pub const IORING_OP_TIMEOUT_REMOVE: _bindgen_ty_2 = 12;
429 pub const IORING_OP_ACCEPT: _bindgen_ty_2 = 13;
430 pub const IORING_OP_ASYNC_CANCEL: _bindgen_ty_2 = 14;
431 pub const IORING_OP_LINK_TIMEOUT: _bindgen_ty_2 = 15;
432 pub const IORING_OP_CONNECT: _bindgen_ty_2 = 16;
433 pub const IORING_OP_FALLOCATE: _bindgen_ty_2 = 17;
434 pub const IORING_OP_OPENAT: _bindgen_ty_2 = 18;
435 pub const IORING_OP_CLOSE: _bindgen_ty_2 = 19;
436 pub const IORING_OP_FILES_UPDATE: _bindgen_ty_2 = 20;
437 pub const IORING_OP_STATX: _bindgen_ty_2 = 21;
438 pub const IORING_OP_READ: _bindgen_ty_2 = 22;
439 pub const IORING_OP_WRITE: _bindgen_ty_2 = 23;
440 pub const IORING_OP_FADVISE: _bindgen_ty_2 = 24;
441 pub const IORING_OP_MADVISE: _bindgen_ty_2 = 25;
442 pub const IORING_OP_SEND: _bindgen_ty_2 = 26;
443 pub const IORING_OP_RECV: _bindgen_ty_2 = 27;
444 pub const IORING_OP_OPENAT2: _bindgen_ty_2 = 28;
445 pub const IORING_OP_EPOLL_CTL: _bindgen_ty_2 = 29;
446 pub const IORING_OP_LAST: _bindgen_ty_2 = 30;
447 pub type _bindgen_ty_2 = ::std::os::raw::c_uint;
448 #[repr(C)]
449 #[derive(Debug, Default, Copy, Clone)]
450 pub struct io_uring_cqe {
451     pub user_data: u64,
452     pub res: i32,
453     pub flags: u32,
454 }
455 #[repr(C)]
456 #[derive(Debug, Default, Copy, Clone)]
457 pub struct io_sqring_offsets {
458     pub head: u32,
459     pub tail: u32,
460     pub ring_mask: u32,
461     pub ring_entries: u32,
462     pub flags: u32,
463     pub dropped: u32,
464     pub array: u32,
465     pub resv1: u32,
466     pub resv2: u64,
467 }
468 #[repr(C)]
469 #[derive(Debug, Default, Copy, Clone)]
470 pub struct io_cqring_offsets {
471     pub head: u32,
472     pub tail: u32,
473     pub ring_mask: u32,
474     pub ring_entries: u32,
475     pub overflow: u32,
476     pub cqes: u32,
477     pub resv: [u64; 2usize],
478 }
479 #[repr(C)]
480 #[derive(Debug, Default, Copy, Clone)]
481 pub struct io_uring_params {
482     pub sq_entries: u32,
483     pub cq_entries: u32,
484     pub flags: u32,
485     pub sq_thread_cpu: u32,
486     pub sq_thread_idle: u32,
487     pub features: u32,
488     pub wq_fd: u32,
489     pub resv: [u32; 3usize],
490     pub sq_off: io_sqring_offsets,
491     pub cq_off: io_cqring_offsets,
492 }
493 #[repr(C)]
494 #[derive(Debug, Default, Copy, Clone)]
495 pub struct io_uring_files_update {
496     pub offset: u32,
497     pub resv: u32,
498     pub fds: u64,
499 }
500 #[repr(C)]
501 #[derive(Debug, Default, Copy, Clone)]
502 pub struct io_uring_probe_op {
503     pub op: u8,
504     pub resv: u8,
505     pub flags: u16,
506     pub resv2: u32,
507 }
508 #[repr(C)]
509 #[derive(Debug, Default)]
510 pub struct io_uring_probe {
511     pub last_op: u8,
512     pub ops_len: u8,
513     pub resv: u16,
514     pub resv2: [u32; 3usize],
515     pub ops: __IncompleteArrayField<io_uring_probe_op>,
516 }
517