linux_raw_sys/x86_64/
io_uring.rs

1/* automatically generated by rust-bindgen 0.72.1 */
2
3pub type __s8 = crate::ctypes::c_schar;
4pub type __u8 = crate::ctypes::c_uchar;
5pub type __s16 = crate::ctypes::c_short;
6pub type __u16 = crate::ctypes::c_ushort;
7pub type __s32 = crate::ctypes::c_int;
8pub type __u32 = crate::ctypes::c_uint;
9pub type __s64 = crate::ctypes::c_longlong;
10pub type __u64 = crate::ctypes::c_ulonglong;
11pub type __kernel_key_t = crate::ctypes::c_int;
12pub type __kernel_mqd_t = crate::ctypes::c_int;
13pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
14pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
15pub type __kernel_old_dev_t = crate::ctypes::c_ulong;
16pub type __kernel_long_t = crate::ctypes::c_long;
17pub type __kernel_ulong_t = crate::ctypes::c_ulong;
18pub type __kernel_ino_t = __kernel_ulong_t;
19pub type __kernel_mode_t = crate::ctypes::c_uint;
20pub type __kernel_pid_t = crate::ctypes::c_int;
21pub type __kernel_ipc_pid_t = crate::ctypes::c_int;
22pub type __kernel_uid_t = crate::ctypes::c_uint;
23pub type __kernel_gid_t = crate::ctypes::c_uint;
24pub type __kernel_suseconds_t = __kernel_long_t;
25pub type __kernel_daddr_t = crate::ctypes::c_int;
26pub type __kernel_uid32_t = crate::ctypes::c_uint;
27pub type __kernel_gid32_t = crate::ctypes::c_uint;
28pub type __kernel_size_t = __kernel_ulong_t;
29pub type __kernel_ssize_t = __kernel_long_t;
30pub type __kernel_ptrdiff_t = __kernel_long_t;
31pub type __kernel_off_t = __kernel_long_t;
32pub type __kernel_loff_t = crate::ctypes::c_longlong;
33pub type __kernel_old_time_t = __kernel_long_t;
34pub type __kernel_time_t = __kernel_long_t;
35pub type __kernel_time64_t = crate::ctypes::c_longlong;
36pub type __kernel_clock_t = __kernel_long_t;
37pub type __kernel_timer_t = crate::ctypes::c_int;
38pub type __kernel_clockid_t = crate::ctypes::c_int;
39pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
40pub type __kernel_uid16_t = crate::ctypes::c_ushort;
41pub type __kernel_gid16_t = crate::ctypes::c_ushort;
42pub type __s128 = i128;
43pub type __u128 = u128;
44pub type __le16 = __u16;
45pub type __be16 = __u16;
46pub type __le32 = __u32;
47pub type __be32 = __u32;
48pub type __le64 = __u64;
49pub type __be64 = __u64;
50pub type __sum16 = __u16;
51pub type __wsum = __u32;
52pub type __poll_t = crate::ctypes::c_uint;
53pub type __kernel_rwf_t = crate::ctypes::c_int;
54#[repr(C)]
55#[derive(Default)]
56pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
57#[repr(C)]
58pub struct __BindgenUnionField<T>(::core::marker::PhantomData<T>);
59#[repr(C)]
60#[derive(Debug, Copy, Clone)]
61pub struct fscrypt_policy_v1 {
62pub version: __u8,
63pub contents_encryption_mode: __u8,
64pub filenames_encryption_mode: __u8,
65pub flags: __u8,
66pub master_key_descriptor: [__u8; 8usize],
67}
68#[repr(C)]
69#[derive(Debug, Copy, Clone)]
70pub struct fscrypt_key {
71pub mode: __u32,
72pub raw: [__u8; 64usize],
73pub size: __u32,
74}
75#[repr(C)]
76#[derive(Debug, Copy, Clone)]
77pub struct fscrypt_policy_v2 {
78pub version: __u8,
79pub contents_encryption_mode: __u8,
80pub filenames_encryption_mode: __u8,
81pub flags: __u8,
82pub log2_data_unit_size: __u8,
83pub __reserved: [__u8; 3usize],
84pub master_key_identifier: [__u8; 16usize],
85}
86#[repr(C)]
87#[derive(Copy, Clone)]
88pub struct fscrypt_get_policy_ex_arg {
89pub policy_size: __u64,
90pub policy: fscrypt_get_policy_ex_arg__bindgen_ty_1,
91}
92#[repr(C)]
93#[derive(Copy, Clone)]
94pub struct fscrypt_key_specifier {
95pub type_: __u32,
96pub __reserved: __u32,
97pub u: fscrypt_key_specifier__bindgen_ty_1,
98}
99#[repr(C)]
100#[derive(Debug)]
101pub struct fscrypt_provisioning_key_payload {
102pub type_: __u32,
103pub flags: __u32,
104pub raw: __IncompleteArrayField<__u8>,
105}
106#[repr(C)]
107pub struct fscrypt_add_key_arg {
108pub key_spec: fscrypt_key_specifier,
109pub raw_size: __u32,
110pub key_id: __u32,
111pub flags: __u32,
112pub __reserved: [__u32; 7usize],
113pub raw: __IncompleteArrayField<__u8>,
114}
115#[repr(C)]
116#[derive(Copy, Clone)]
117pub struct fscrypt_remove_key_arg {
118pub key_spec: fscrypt_key_specifier,
119pub removal_status_flags: __u32,
120pub __reserved: [__u32; 5usize],
121}
122#[repr(C)]
123#[derive(Copy, Clone)]
124pub struct fscrypt_get_key_status_arg {
125pub key_spec: fscrypt_key_specifier,
126pub __reserved: [__u32; 6usize],
127pub status: __u32,
128pub status_flags: __u32,
129pub user_count: __u32,
130pub __out_reserved: [__u32; 13usize],
131}
132#[repr(C)]
133#[derive(Debug, Copy, Clone)]
134pub struct mount_attr {
135pub attr_set: __u64,
136pub attr_clr: __u64,
137pub propagation: __u64,
138pub userns_fd: __u64,
139}
140#[repr(C)]
141#[derive(Debug)]
142pub struct statmount {
143pub size: __u32,
144pub mnt_opts: __u32,
145pub mask: __u64,
146pub sb_dev_major: __u32,
147pub sb_dev_minor: __u32,
148pub sb_magic: __u64,
149pub sb_flags: __u32,
150pub fs_type: __u32,
151pub mnt_id: __u64,
152pub mnt_parent_id: __u64,
153pub mnt_id_old: __u32,
154pub mnt_parent_id_old: __u32,
155pub mnt_attr: __u64,
156pub mnt_propagation: __u64,
157pub mnt_peer_group: __u64,
158pub mnt_master: __u64,
159pub propagate_from: __u64,
160pub mnt_root: __u32,
161pub mnt_point: __u32,
162pub mnt_ns_id: __u64,
163pub fs_subtype: __u32,
164pub sb_source: __u32,
165pub opt_num: __u32,
166pub opt_array: __u32,
167pub opt_sec_num: __u32,
168pub opt_sec_array: __u32,
169pub supported_mask: __u64,
170pub mnt_uidmap_num: __u32,
171pub mnt_uidmap: __u32,
172pub mnt_gidmap_num: __u32,
173pub mnt_gidmap: __u32,
174pub __spare2: [__u64; 43usize],
175pub str_: __IncompleteArrayField<crate::ctypes::c_char>,
176}
177#[repr(C)]
178#[derive(Debug, Copy, Clone)]
179pub struct mnt_id_req {
180pub size: __u32,
181pub spare: __u32,
182pub mnt_id: __u64,
183pub param: __u64,
184pub mnt_ns_id: __u64,
185}
186#[repr(C)]
187#[derive(Debug, Copy, Clone)]
188pub struct file_clone_range {
189pub src_fd: __s64,
190pub src_offset: __u64,
191pub src_length: __u64,
192pub dest_offset: __u64,
193}
194#[repr(C)]
195#[derive(Debug, Copy, Clone)]
196pub struct fstrim_range {
197pub start: __u64,
198pub len: __u64,
199pub minlen: __u64,
200}
201#[repr(C)]
202#[derive(Debug, Copy, Clone)]
203pub struct fsuuid2 {
204pub len: __u8,
205pub uuid: [__u8; 16usize],
206}
207#[repr(C)]
208#[derive(Debug, Copy, Clone)]
209pub struct fs_sysfs_path {
210pub len: __u8,
211pub name: [__u8; 128usize],
212}
213#[repr(C)]
214#[derive(Debug, Copy, Clone)]
215pub struct logical_block_metadata_cap {
216pub lbmd_flags: __u32,
217pub lbmd_interval: __u16,
218pub lbmd_size: __u8,
219pub lbmd_opaque_size: __u8,
220pub lbmd_opaque_offset: __u8,
221pub lbmd_pi_size: __u8,
222pub lbmd_pi_offset: __u8,
223pub lbmd_guard_tag_type: __u8,
224pub lbmd_app_tag_size: __u8,
225pub lbmd_ref_tag_size: __u8,
226pub lbmd_storage_tag_size: __u8,
227pub pad: __u8,
228}
229#[repr(C)]
230#[derive(Debug, Copy, Clone)]
231pub struct file_dedupe_range_info {
232pub dest_fd: __s64,
233pub dest_offset: __u64,
234pub bytes_deduped: __u64,
235pub status: __s32,
236pub reserved: __u32,
237}
238#[repr(C)]
239#[derive(Debug)]
240pub struct file_dedupe_range {
241pub src_offset: __u64,
242pub src_length: __u64,
243pub dest_count: __u16,
244pub reserved1: __u16,
245pub reserved2: __u32,
246pub info: __IncompleteArrayField<file_dedupe_range_info>,
247}
248#[repr(C)]
249#[derive(Debug, Copy, Clone)]
250pub struct files_stat_struct {
251pub nr_files: crate::ctypes::c_ulong,
252pub nr_free_files: crate::ctypes::c_ulong,
253pub max_files: crate::ctypes::c_ulong,
254}
255#[repr(C)]
256#[derive(Debug, Copy, Clone)]
257pub struct inodes_stat_t {
258pub nr_inodes: crate::ctypes::c_long,
259pub nr_unused: crate::ctypes::c_long,
260pub dummy: [crate::ctypes::c_long; 5usize],
261}
262#[repr(C)]
263#[derive(Debug, Copy, Clone)]
264pub struct fsxattr {
265pub fsx_xflags: __u32,
266pub fsx_extsize: __u32,
267pub fsx_nextents: __u32,
268pub fsx_projid: __u32,
269pub fsx_cowextsize: __u32,
270pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
271}
272#[repr(C)]
273#[derive(Debug, Copy, Clone)]
274pub struct file_attr {
275pub fa_xflags: __u64,
276pub fa_extsize: __u32,
277pub fa_nextents: __u32,
278pub fa_projid: __u32,
279pub fa_cowextsize: __u32,
280}
281#[repr(C)]
282#[derive(Debug, Copy, Clone)]
283pub struct page_region {
284pub start: __u64,
285pub end: __u64,
286pub categories: __u64,
287}
288#[repr(C)]
289#[derive(Debug, Copy, Clone)]
290pub struct pm_scan_arg {
291pub size: __u64,
292pub flags: __u64,
293pub start: __u64,
294pub end: __u64,
295pub walk_end: __u64,
296pub vec: __u64,
297pub vec_len: __u64,
298pub max_pages: __u64,
299pub category_inverted: __u64,
300pub category_mask: __u64,
301pub category_anyof_mask: __u64,
302pub return_mask: __u64,
303}
304#[repr(C)]
305#[derive(Debug, Copy, Clone)]
306pub struct procmap_query {
307pub size: __u64,
308pub query_flags: __u64,
309pub query_addr: __u64,
310pub vma_start: __u64,
311pub vma_end: __u64,
312pub vma_flags: __u64,
313pub vma_page_size: __u64,
314pub vma_offset: __u64,
315pub inode: __u64,
316pub dev_major: __u32,
317pub dev_minor: __u32,
318pub vma_name_size: __u32,
319pub build_id_size: __u32,
320pub vma_name_addr: __u64,
321pub build_id_addr: __u64,
322}
323#[repr(C)]
324#[derive(Debug, Copy, Clone)]
325pub struct __kernel_timespec {
326pub tv_sec: __kernel_time64_t,
327pub tv_nsec: crate::ctypes::c_longlong,
328}
329#[repr(C)]
330#[derive(Debug, Copy, Clone)]
331pub struct __kernel_itimerspec {
332pub it_interval: __kernel_timespec,
333pub it_value: __kernel_timespec,
334}
335#[repr(C)]
336#[derive(Debug, Copy, Clone)]
337pub struct __kernel_old_timeval {
338pub tv_sec: __kernel_long_t,
339pub tv_usec: __kernel_long_t,
340}
341#[repr(C)]
342#[derive(Debug, Copy, Clone)]
343pub struct __kernel_old_timespec {
344pub tv_sec: __kernel_old_time_t,
345pub tv_nsec: crate::ctypes::c_long,
346}
347#[repr(C)]
348#[derive(Debug, Copy, Clone)]
349pub struct __kernel_old_itimerval {
350pub it_interval: __kernel_old_timeval,
351pub it_value: __kernel_old_timeval,
352}
353#[repr(C)]
354#[derive(Debug, Copy, Clone)]
355pub struct __kernel_sock_timeval {
356pub tv_sec: __s64,
357pub tv_usec: __s64,
358}
359#[repr(C)]
360pub struct io_uring_sqe {
361pub opcode: __u8,
362pub flags: __u8,
363pub ioprio: __u16,
364pub fd: __s32,
365pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_1,
366pub __bindgen_anon_2: io_uring_sqe__bindgen_ty_2,
367pub len: __u32,
368pub __bindgen_anon_3: io_uring_sqe__bindgen_ty_3,
369pub user_data: __u64,
370pub __bindgen_anon_4: io_uring_sqe__bindgen_ty_4,
371pub personality: __u16,
372pub __bindgen_anon_5: io_uring_sqe__bindgen_ty_5,
373pub __bindgen_anon_6: io_uring_sqe__bindgen_ty_6,
374}
375#[repr(C)]
376#[derive(Debug, Copy, Clone)]
377pub struct io_uring_sqe__bindgen_ty_1__bindgen_ty_1 {
378pub cmd_op: __u32,
379pub __pad1: __u32,
380}
381#[repr(C)]
382#[derive(Debug, Copy, Clone)]
383pub struct io_uring_sqe__bindgen_ty_2__bindgen_ty_1 {
384pub level: __u32,
385pub optname: __u32,
386}
387#[repr(C)]
388#[derive(Debug, Copy, Clone)]
389pub struct io_uring_sqe__bindgen_ty_5__bindgen_ty_1 {
390pub addr_len: __u16,
391pub __pad3: [__u16; 1usize],
392}
393#[repr(C)]
394#[derive(Debug, Copy, Clone)]
395pub struct io_uring_sqe__bindgen_ty_5__bindgen_ty_2 {
396pub write_stream: __u8,
397pub __pad4: [__u8; 3usize],
398}
399#[repr(C)]
400pub struct io_uring_sqe__bindgen_ty_6 {
401pub __bindgen_anon_1: __BindgenUnionField<io_uring_sqe__bindgen_ty_6__bindgen_ty_1>,
402pub __bindgen_anon_2: __BindgenUnionField<io_uring_sqe__bindgen_ty_6__bindgen_ty_2>,
403pub optval: __BindgenUnionField<__u64>,
404pub cmd: __BindgenUnionField<[__u8; 0usize]>,
405pub bindgen_union_field: [u64; 2usize],
406}
407#[repr(C)]
408#[derive(Debug, Copy, Clone)]
409pub struct io_uring_sqe__bindgen_ty_6__bindgen_ty_1 {
410pub addr3: __u64,
411pub __pad2: [__u64; 1usize],
412}
413#[repr(C)]
414#[derive(Debug, Copy, Clone)]
415pub struct io_uring_sqe__bindgen_ty_6__bindgen_ty_2 {
416pub attr_ptr: __u64,
417pub attr_type_mask: __u64,
418}
419#[repr(C)]
420#[derive(Debug, Copy, Clone)]
421pub struct io_uring_attr_pi {
422pub flags: __u16,
423pub app_tag: __u16,
424pub len: __u32,
425pub addr: __u64,
426pub seed: __u64,
427pub rsvd: __u64,
428}
429#[repr(C)]
430#[derive(Debug)]
431pub struct io_uring_cqe {
432pub user_data: __u64,
433pub res: __s32,
434pub flags: __u32,
435pub big_cqe: __IncompleteArrayField<__u64>,
436}
437#[repr(C)]
438#[derive(Debug, Copy, Clone)]
439pub struct io_sqring_offsets {
440pub head: __u32,
441pub tail: __u32,
442pub ring_mask: __u32,
443pub ring_entries: __u32,
444pub flags: __u32,
445pub dropped: __u32,
446pub array: __u32,
447pub resv1: __u32,
448pub user_addr: __u64,
449}
450#[repr(C)]
451#[derive(Debug, Copy, Clone)]
452pub struct io_cqring_offsets {
453pub head: __u32,
454pub tail: __u32,
455pub ring_mask: __u32,
456pub ring_entries: __u32,
457pub overflow: __u32,
458pub cqes: __u32,
459pub flags: __u32,
460pub resv1: __u32,
461pub user_addr: __u64,
462}
463#[repr(C)]
464#[derive(Debug, Copy, Clone)]
465pub struct io_uring_params {
466pub sq_entries: __u32,
467pub cq_entries: __u32,
468pub flags: __u32,
469pub sq_thread_cpu: __u32,
470pub sq_thread_idle: __u32,
471pub features: __u32,
472pub wq_fd: __u32,
473pub resv: [__u32; 3usize],
474pub sq_off: io_sqring_offsets,
475pub cq_off: io_cqring_offsets,
476}
477#[repr(C)]
478#[derive(Debug, Copy, Clone)]
479pub struct io_uring_files_update {
480pub offset: __u32,
481pub resv: __u32,
482pub fds: __u64,
483}
484#[repr(C)]
485#[derive(Debug, Copy, Clone)]
486pub struct io_uring_region_desc {
487pub user_addr: __u64,
488pub size: __u64,
489pub flags: __u32,
490pub id: __u32,
491pub mmap_offset: __u64,
492pub __resv: [__u64; 4usize],
493}
494#[repr(C)]
495#[derive(Debug, Copy, Clone)]
496pub struct io_uring_mem_region_reg {
497pub region_uptr: __u64,
498pub flags: __u64,
499pub __resv: [__u64; 2usize],
500}
501#[repr(C)]
502#[derive(Debug, Copy, Clone)]
503pub struct io_uring_rsrc_register {
504pub nr: __u32,
505pub flags: __u32,
506pub resv2: __u64,
507pub data: __u64,
508pub tags: __u64,
509}
510#[repr(C)]
511#[derive(Debug, Copy, Clone)]
512pub struct io_uring_rsrc_update {
513pub offset: __u32,
514pub resv: __u32,
515pub data: __u64,
516}
517#[repr(C)]
518#[derive(Debug, Copy, Clone)]
519pub struct io_uring_rsrc_update2 {
520pub offset: __u32,
521pub resv: __u32,
522pub data: __u64,
523pub tags: __u64,
524pub nr: __u32,
525pub resv2: __u32,
526}
527#[repr(C)]
528#[derive(Debug, Copy, Clone)]
529pub struct io_uring_probe_op {
530pub op: __u8,
531pub resv: __u8,
532pub flags: __u16,
533pub resv2: __u32,
534}
535#[repr(C)]
536#[derive(Debug)]
537pub struct io_uring_probe {
538pub last_op: __u8,
539pub ops_len: __u8,
540pub resv: __u16,
541pub resv2: [__u32; 3usize],
542pub ops: __IncompleteArrayField<io_uring_probe_op>,
543}
544#[repr(C)]
545#[derive(Copy, Clone)]
546pub struct io_uring_restriction {
547pub opcode: __u16,
548pub __bindgen_anon_1: io_uring_restriction__bindgen_ty_1,
549pub resv: __u8,
550pub resv2: [__u32; 3usize],
551}
552#[repr(C)]
553#[derive(Debug, Copy, Clone)]
554pub struct io_uring_clock_register {
555pub clockid: __u32,
556pub __resv: [__u32; 3usize],
557}
558#[repr(C)]
559#[derive(Debug, Copy, Clone)]
560pub struct io_uring_clone_buffers {
561pub src_fd: __u32,
562pub flags: __u32,
563pub src_off: __u32,
564pub dst_off: __u32,
565pub nr: __u32,
566pub pad: [__u32; 3usize],
567}
568#[repr(C)]
569#[derive(Debug, Copy, Clone)]
570pub struct io_uring_buf {
571pub addr: __u64,
572pub len: __u32,
573pub bid: __u16,
574pub resv: __u16,
575}
576#[repr(C)]
577pub struct io_uring_buf_ring {
578pub __bindgen_anon_1: io_uring_buf_ring__bindgen_ty_1,
579}
580#[repr(C)]
581pub struct io_uring_buf_ring__bindgen_ty_1 {
582pub __bindgen_anon_1: __BindgenUnionField<io_uring_buf_ring__bindgen_ty_1__bindgen_ty_1>,
583pub __bindgen_anon_2: __BindgenUnionField<io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2>,
584pub bindgen_union_field: [u64; 2usize],
585}
586#[repr(C)]
587#[derive(Debug, Copy, Clone)]
588pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_1 {
589pub resv1: __u64,
590pub resv2: __u32,
591pub resv3: __u16,
592pub tail: __u16,
593}
594#[repr(C)]
595#[derive(Debug)]
596pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2 {
597pub __empty_bufs: io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1,
598pub bufs: __IncompleteArrayField<io_uring_buf>,
599}
600#[repr(C)]
601#[derive(Debug, Copy, Clone)]
602pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 {}
603#[repr(C)]
604#[derive(Debug, Copy, Clone)]
605pub struct io_uring_buf_reg {
606pub ring_addr: __u64,
607pub ring_entries: __u32,
608pub bgid: __u16,
609pub flags: __u16,
610pub resv: [__u64; 3usize],
611}
612#[repr(C)]
613#[derive(Debug, Copy, Clone)]
614pub struct io_uring_buf_status {
615pub buf_group: __u32,
616pub head: __u32,
617pub resv: [__u32; 8usize],
618}
619#[repr(C)]
620#[derive(Debug, Copy, Clone)]
621pub struct io_uring_napi {
622pub busy_poll_to: __u32,
623pub prefer_busy_poll: __u8,
624pub opcode: __u8,
625pub pad: [__u8; 2usize],
626pub op_param: __u32,
627pub resv: __u32,
628}
629#[repr(C)]
630#[derive(Debug, Copy, Clone)]
631pub struct io_uring_reg_wait {
632pub ts: __kernel_timespec,
633pub min_wait_usec: __u32,
634pub flags: __u32,
635pub sigmask: __u64,
636pub sigmask_sz: __u32,
637pub pad: [__u32; 3usize],
638pub pad2: [__u64; 2usize],
639}
640#[repr(C)]
641#[derive(Debug, Copy, Clone)]
642pub struct io_uring_getevents_arg {
643pub sigmask: __u64,
644pub sigmask_sz: __u32,
645pub min_wait_usec: __u32,
646pub ts: __u64,
647}
648#[repr(C)]
649#[derive(Debug, Copy, Clone)]
650pub struct io_uring_sync_cancel_reg {
651pub addr: __u64,
652pub fd: __s32,
653pub flags: __u32,
654pub timeout: __kernel_timespec,
655pub opcode: __u8,
656pub pad: [__u8; 7usize],
657pub pad2: [__u64; 3usize],
658}
659#[repr(C)]
660#[derive(Debug, Copy, Clone)]
661pub struct io_uring_file_index_range {
662pub off: __u32,
663pub len: __u32,
664pub resv: __u64,
665}
666#[repr(C)]
667#[derive(Debug, Copy, Clone)]
668pub struct io_uring_recvmsg_out {
669pub namelen: __u32,
670pub controllen: __u32,
671pub payloadlen: __u32,
672pub flags: __u32,
673}
674#[repr(C)]
675#[derive(Debug, Copy, Clone)]
676pub struct io_timespec {
677pub tv_sec: __u64,
678pub tv_nsec: __u64,
679}
680#[repr(C)]
681#[derive(Debug, Copy, Clone)]
682pub struct io_uring_zcrx_rqe {
683pub off: __u64,
684pub len: __u32,
685pub __pad: __u32,
686}
687#[repr(C)]
688#[derive(Debug, Copy, Clone)]
689pub struct io_uring_zcrx_cqe {
690pub off: __u64,
691pub __pad: __u64,
692}
693#[repr(C)]
694#[derive(Debug, Copy, Clone)]
695pub struct io_uring_zcrx_offsets {
696pub head: __u32,
697pub tail: __u32,
698pub rqes: __u32,
699pub __resv2: __u32,
700pub __resv: [__u64; 2usize],
701}
702#[repr(C)]
703#[derive(Debug, Copy, Clone)]
704pub struct io_uring_zcrx_area_reg {
705pub addr: __u64,
706pub len: __u64,
707pub rq_area_token: __u64,
708pub flags: __u32,
709pub dmabuf_fd: __u32,
710pub __resv2: [__u64; 2usize],
711}
712#[repr(C)]
713#[derive(Debug, Copy, Clone)]
714pub struct io_uring_zcrx_ifq_reg {
715pub if_idx: __u32,
716pub if_rxq: __u32,
717pub rq_entries: __u32,
718pub flags: __u32,
719pub area_ptr: __u64,
720pub region_ptr: __u64,
721pub offsets: io_uring_zcrx_offsets,
722pub zcrx_id: __u32,
723pub __resv2: __u32,
724pub __resv: [__u64; 3usize],
725}
726pub const NR_OPEN: u32 = 1024;
727pub const NGROUPS_MAX: u32 = 65536;
728pub const ARG_MAX: u32 = 131072;
729pub const LINK_MAX: u32 = 127;
730pub const MAX_CANON: u32 = 255;
731pub const MAX_INPUT: u32 = 255;
732pub const NAME_MAX: u32 = 255;
733pub const PATH_MAX: u32 = 4096;
734pub const PIPE_BUF: u32 = 4096;
735pub const XATTR_NAME_MAX: u32 = 255;
736pub const XATTR_SIZE_MAX: u32 = 65536;
737pub const XATTR_LIST_MAX: u32 = 65536;
738pub const RTSIG_MAX: u32 = 32;
739pub const _IOC_NRBITS: u32 = 8;
740pub const _IOC_TYPEBITS: u32 = 8;
741pub const _IOC_SIZEBITS: u32 = 14;
742pub const _IOC_DIRBITS: u32 = 2;
743pub const _IOC_NRMASK: u32 = 255;
744pub const _IOC_TYPEMASK: u32 = 255;
745pub const _IOC_SIZEMASK: u32 = 16383;
746pub const _IOC_DIRMASK: u32 = 3;
747pub const _IOC_NRSHIFT: u32 = 0;
748pub const _IOC_TYPESHIFT: u32 = 8;
749pub const _IOC_SIZESHIFT: u32 = 16;
750pub const _IOC_DIRSHIFT: u32 = 30;
751pub const _IOC_NONE: u32 = 0;
752pub const _IOC_WRITE: u32 = 1;
753pub const _IOC_READ: u32 = 2;
754pub const IOC_IN: u32 = 1073741824;
755pub const IOC_OUT: u32 = 2147483648;
756pub const IOC_INOUT: u32 = 3221225472;
757pub const IOCSIZE_MASK: u32 = 1073676288;
758pub const IOCSIZE_SHIFT: u32 = 16;
759pub const __BITS_PER_LONG_LONG: u32 = 64;
760pub const FSCRYPT_POLICY_FLAGS_PAD_4: u32 = 0;
761pub const FSCRYPT_POLICY_FLAGS_PAD_8: u32 = 1;
762pub const FSCRYPT_POLICY_FLAGS_PAD_16: u32 = 2;
763pub const FSCRYPT_POLICY_FLAGS_PAD_32: u32 = 3;
764pub const FSCRYPT_POLICY_FLAGS_PAD_MASK: u32 = 3;
765pub const FSCRYPT_POLICY_FLAG_DIRECT_KEY: u32 = 4;
766pub const FSCRYPT_POLICY_FLAG_IV_INO_LBLK_64: u32 = 8;
767pub const FSCRYPT_POLICY_FLAG_IV_INO_LBLK_32: u32 = 16;
768pub const FSCRYPT_MODE_AES_256_XTS: u32 = 1;
769pub const FSCRYPT_MODE_AES_256_CTS: u32 = 4;
770pub const FSCRYPT_MODE_AES_128_CBC: u32 = 5;
771pub const FSCRYPT_MODE_AES_128_CTS: u32 = 6;
772pub const FSCRYPT_MODE_SM4_XTS: u32 = 7;
773pub const FSCRYPT_MODE_SM4_CTS: u32 = 8;
774pub const FSCRYPT_MODE_ADIANTUM: u32 = 9;
775pub const FSCRYPT_MODE_AES_256_HCTR2: u32 = 10;
776pub const FSCRYPT_POLICY_V1: u32 = 0;
777pub const FSCRYPT_KEY_DESCRIPTOR_SIZE: u32 = 8;
778pub const FSCRYPT_KEY_DESC_PREFIX: &[u8; 9] = b"fscrypt:\0";
779pub const FSCRYPT_KEY_DESC_PREFIX_SIZE: u32 = 8;
780pub const FSCRYPT_MAX_KEY_SIZE: u32 = 64;
781pub const FSCRYPT_POLICY_V2: u32 = 2;
782pub const FSCRYPT_KEY_IDENTIFIER_SIZE: u32 = 16;
783pub const FSCRYPT_KEY_SPEC_TYPE_DESCRIPTOR: u32 = 1;
784pub const FSCRYPT_KEY_SPEC_TYPE_IDENTIFIER: u32 = 2;
785pub const FSCRYPT_ADD_KEY_FLAG_HW_WRAPPED: u32 = 1;
786pub const FSCRYPT_KEY_REMOVAL_STATUS_FLAG_FILES_BUSY: u32 = 1;
787pub const FSCRYPT_KEY_REMOVAL_STATUS_FLAG_OTHER_USERS: u32 = 2;
788pub const FSCRYPT_KEY_STATUS_ABSENT: u32 = 1;
789pub const FSCRYPT_KEY_STATUS_PRESENT: u32 = 2;
790pub const FSCRYPT_KEY_STATUS_INCOMPLETELY_REMOVED: u32 = 3;
791pub const FSCRYPT_KEY_STATUS_FLAG_ADDED_BY_SELF: u32 = 1;
792pub const FS_KEY_DESCRIPTOR_SIZE: u32 = 8;
793pub const FS_POLICY_FLAGS_PAD_4: u32 = 0;
794pub const FS_POLICY_FLAGS_PAD_8: u32 = 1;
795pub const FS_POLICY_FLAGS_PAD_16: u32 = 2;
796pub const FS_POLICY_FLAGS_PAD_32: u32 = 3;
797pub const FS_POLICY_FLAGS_PAD_MASK: u32 = 3;
798pub const FS_POLICY_FLAG_DIRECT_KEY: u32 = 4;
799pub const FS_POLICY_FLAGS_VALID: u32 = 7;
800pub const FS_ENCRYPTION_MODE_INVALID: u32 = 0;
801pub const FS_ENCRYPTION_MODE_AES_256_XTS: u32 = 1;
802pub const FS_ENCRYPTION_MODE_AES_256_GCM: u32 = 2;
803pub const FS_ENCRYPTION_MODE_AES_256_CBC: u32 = 3;
804pub const FS_ENCRYPTION_MODE_AES_256_CTS: u32 = 4;
805pub const FS_ENCRYPTION_MODE_AES_128_CBC: u32 = 5;
806pub const FS_ENCRYPTION_MODE_AES_128_CTS: u32 = 6;
807pub const FS_ENCRYPTION_MODE_ADIANTUM: u32 = 9;
808pub const FS_KEY_DESC_PREFIX: &[u8; 9] = b"fscrypt:\0";
809pub const FS_KEY_DESC_PREFIX_SIZE: u32 = 8;
810pub const FS_MAX_KEY_SIZE: u32 = 64;
811pub const MS_RDONLY: u32 = 1;
812pub const MS_NOSUID: u32 = 2;
813pub const MS_NODEV: u32 = 4;
814pub const MS_NOEXEC: u32 = 8;
815pub const MS_SYNCHRONOUS: u32 = 16;
816pub const MS_REMOUNT: u32 = 32;
817pub const MS_MANDLOCK: u32 = 64;
818pub const MS_DIRSYNC: u32 = 128;
819pub const MS_NOSYMFOLLOW: u32 = 256;
820pub const MS_NOATIME: u32 = 1024;
821pub const MS_NODIRATIME: u32 = 2048;
822pub const MS_BIND: u32 = 4096;
823pub const MS_MOVE: u32 = 8192;
824pub const MS_REC: u32 = 16384;
825pub const MS_VERBOSE: u32 = 32768;
826pub const MS_SILENT: u32 = 32768;
827pub const MS_POSIXACL: u32 = 65536;
828pub const MS_UNBINDABLE: u32 = 131072;
829pub const MS_PRIVATE: u32 = 262144;
830pub const MS_SLAVE: u32 = 524288;
831pub const MS_SHARED: u32 = 1048576;
832pub const MS_RELATIME: u32 = 2097152;
833pub const MS_KERNMOUNT: u32 = 4194304;
834pub const MS_I_VERSION: u32 = 8388608;
835pub const MS_STRICTATIME: u32 = 16777216;
836pub const MS_LAZYTIME: u32 = 33554432;
837pub const MS_SUBMOUNT: u32 = 67108864;
838pub const MS_NOREMOTELOCK: u32 = 134217728;
839pub const MS_NOSEC: u32 = 268435456;
840pub const MS_BORN: u32 = 536870912;
841pub const MS_ACTIVE: u32 = 1073741824;
842pub const MS_NOUSER: u32 = 2147483648;
843pub const MS_RMT_MASK: u32 = 41943121;
844pub const MS_MGC_VAL: u32 = 3236757504;
845pub const MS_MGC_MSK: u32 = 4294901760;
846pub const OPEN_TREE_CLONE: u32 = 1;
847pub const MOVE_MOUNT_F_SYMLINKS: u32 = 1;
848pub const MOVE_MOUNT_F_AUTOMOUNTS: u32 = 2;
849pub const MOVE_MOUNT_F_EMPTY_PATH: u32 = 4;
850pub const MOVE_MOUNT_T_SYMLINKS: u32 = 16;
851pub const MOVE_MOUNT_T_AUTOMOUNTS: u32 = 32;
852pub const MOVE_MOUNT_T_EMPTY_PATH: u32 = 64;
853pub const MOVE_MOUNT_SET_GROUP: u32 = 256;
854pub const MOVE_MOUNT_BENEATH: u32 = 512;
855pub const MOVE_MOUNT__MASK: u32 = 887;
856pub const FSOPEN_CLOEXEC: u32 = 1;
857pub const FSPICK_CLOEXEC: u32 = 1;
858pub const FSPICK_SYMLINK_NOFOLLOW: u32 = 2;
859pub const FSPICK_NO_AUTOMOUNT: u32 = 4;
860pub const FSPICK_EMPTY_PATH: u32 = 8;
861pub const FSMOUNT_CLOEXEC: u32 = 1;
862pub const MOUNT_ATTR_RDONLY: u32 = 1;
863pub const MOUNT_ATTR_NOSUID: u32 = 2;
864pub const MOUNT_ATTR_NODEV: u32 = 4;
865pub const MOUNT_ATTR_NOEXEC: u32 = 8;
866pub const MOUNT_ATTR__ATIME: u32 = 112;
867pub const MOUNT_ATTR_RELATIME: u32 = 0;
868pub const MOUNT_ATTR_NOATIME: u32 = 16;
869pub const MOUNT_ATTR_STRICTATIME: u32 = 32;
870pub const MOUNT_ATTR_NODIRATIME: u32 = 128;
871pub const MOUNT_ATTR_IDMAP: u32 = 1048576;
872pub const MOUNT_ATTR_NOSYMFOLLOW: u32 = 2097152;
873pub const MOUNT_ATTR_SIZE_VER0: u32 = 32;
874pub const MNT_ID_REQ_SIZE_VER0: u32 = 24;
875pub const MNT_ID_REQ_SIZE_VER1: u32 = 32;
876pub const STATMOUNT_SB_BASIC: u32 = 1;
877pub const STATMOUNT_MNT_BASIC: u32 = 2;
878pub const STATMOUNT_PROPAGATE_FROM: u32 = 4;
879pub const STATMOUNT_MNT_ROOT: u32 = 8;
880pub const STATMOUNT_MNT_POINT: u32 = 16;
881pub const STATMOUNT_FS_TYPE: u32 = 32;
882pub const STATMOUNT_MNT_NS_ID: u32 = 64;
883pub const STATMOUNT_MNT_OPTS: u32 = 128;
884pub const STATMOUNT_FS_SUBTYPE: u32 = 256;
885pub const STATMOUNT_SB_SOURCE: u32 = 512;
886pub const STATMOUNT_OPT_ARRAY: u32 = 1024;
887pub const STATMOUNT_OPT_SEC_ARRAY: u32 = 2048;
888pub const STATMOUNT_SUPPORTED_MASK: u32 = 4096;
889pub const STATMOUNT_MNT_UIDMAP: u32 = 8192;
890pub const STATMOUNT_MNT_GIDMAP: u32 = 16384;
891pub const LSMT_ROOT: i32 = -1;
892pub const LISTMOUNT_REVERSE: u32 = 1;
893pub const INR_OPEN_CUR: u32 = 1024;
894pub const INR_OPEN_MAX: u32 = 4096;
895pub const BLOCK_SIZE_BITS: u32 = 10;
896pub const BLOCK_SIZE: u32 = 1024;
897pub const IO_INTEGRITY_CHK_GUARD: u32 = 1;
898pub const IO_INTEGRITY_CHK_REFTAG: u32 = 2;
899pub const IO_INTEGRITY_CHK_APPTAG: u32 = 4;
900pub const IO_INTEGRITY_VALID_FLAGS: u32 = 7;
901pub const SEEK_SET: u32 = 0;
902pub const SEEK_CUR: u32 = 1;
903pub const SEEK_END: u32 = 2;
904pub const SEEK_DATA: u32 = 3;
905pub const SEEK_HOLE: u32 = 4;
906pub const SEEK_MAX: u32 = 4;
907pub const RENAME_NOREPLACE: u32 = 1;
908pub const RENAME_EXCHANGE: u32 = 2;
909pub const RENAME_WHITEOUT: u32 = 4;
910pub const LBMD_PI_CAP_INTEGRITY: u32 = 1;
911pub const LBMD_PI_CAP_REFTAG: u32 = 2;
912pub const LBMD_PI_CSUM_NONE: u32 = 0;
913pub const LBMD_PI_CSUM_IP: u32 = 1;
914pub const LBMD_PI_CSUM_CRC16_T10DIF: u32 = 2;
915pub const LBMD_PI_CSUM_CRC64_NVME: u32 = 4;
916pub const LBMD_SIZE_VER0: u32 = 16;
917pub const FILE_DEDUPE_RANGE_SAME: u32 = 0;
918pub const FILE_DEDUPE_RANGE_DIFFERS: u32 = 1;
919pub const NR_FILE: u32 = 8192;
920pub const FILE_ATTR_SIZE_VER0: u32 = 24;
921pub const FILE_ATTR_SIZE_LATEST: u32 = 24;
922pub const FS_XFLAG_REALTIME: u32 = 1;
923pub const FS_XFLAG_PREALLOC: u32 = 2;
924pub const FS_XFLAG_IMMUTABLE: u32 = 8;
925pub const FS_XFLAG_APPEND: u32 = 16;
926pub const FS_XFLAG_SYNC: u32 = 32;
927pub const FS_XFLAG_NOATIME: u32 = 64;
928pub const FS_XFLAG_NODUMP: u32 = 128;
929pub const FS_XFLAG_RTINHERIT: u32 = 256;
930pub const FS_XFLAG_PROJINHERIT: u32 = 512;
931pub const FS_XFLAG_NOSYMLINKS: u32 = 1024;
932pub const FS_XFLAG_EXTSIZE: u32 = 2048;
933pub const FS_XFLAG_EXTSZINHERIT: u32 = 4096;
934pub const FS_XFLAG_NODEFRAG: u32 = 8192;
935pub const FS_XFLAG_FILESTREAM: u32 = 16384;
936pub const FS_XFLAG_DAX: u32 = 32768;
937pub const FS_XFLAG_COWEXTSIZE: u32 = 65536;
938pub const FS_XFLAG_HASATTR: u32 = 2147483648;
939pub const BMAP_IOCTL: u32 = 1;
940pub const FSLABEL_MAX: u32 = 256;
941pub const FS_SECRM_FL: u32 = 1;
942pub const FS_UNRM_FL: u32 = 2;
943pub const FS_COMPR_FL: u32 = 4;
944pub const FS_SYNC_FL: u32 = 8;
945pub const FS_IMMUTABLE_FL: u32 = 16;
946pub const FS_APPEND_FL: u32 = 32;
947pub const FS_NODUMP_FL: u32 = 64;
948pub const FS_NOATIME_FL: u32 = 128;
949pub const FS_DIRTY_FL: u32 = 256;
950pub const FS_COMPRBLK_FL: u32 = 512;
951pub const FS_NOCOMP_FL: u32 = 1024;
952pub const FS_ENCRYPT_FL: u32 = 2048;
953pub const FS_BTREE_FL: u32 = 4096;
954pub const FS_INDEX_FL: u32 = 4096;
955pub const FS_IMAGIC_FL: u32 = 8192;
956pub const FS_JOURNAL_DATA_FL: u32 = 16384;
957pub const FS_NOTAIL_FL: u32 = 32768;
958pub const FS_DIRSYNC_FL: u32 = 65536;
959pub const FS_TOPDIR_FL: u32 = 131072;
960pub const FS_HUGE_FILE_FL: u32 = 262144;
961pub const FS_EXTENT_FL: u32 = 524288;
962pub const FS_VERITY_FL: u32 = 1048576;
963pub const FS_EA_INODE_FL: u32 = 2097152;
964pub const FS_EOFBLOCKS_FL: u32 = 4194304;
965pub const FS_NOCOW_FL: u32 = 8388608;
966pub const FS_DAX_FL: u32 = 33554432;
967pub const FS_INLINE_DATA_FL: u32 = 268435456;
968pub const FS_PROJINHERIT_FL: u32 = 536870912;
969pub const FS_CASEFOLD_FL: u32 = 1073741824;
970pub const FS_RESERVED_FL: u32 = 2147483648;
971pub const FS_FL_USER_VISIBLE: u32 = 253951;
972pub const FS_FL_USER_MODIFIABLE: u32 = 229631;
973pub const SYNC_FILE_RANGE_WAIT_BEFORE: u32 = 1;
974pub const SYNC_FILE_RANGE_WRITE: u32 = 2;
975pub const SYNC_FILE_RANGE_WAIT_AFTER: u32 = 4;
976pub const SYNC_FILE_RANGE_WRITE_AND_WAIT: u32 = 7;
977pub const PROCFS_IOCTL_MAGIC: u8 = 102u8;
978pub const PAGE_IS_WPALLOWED: u32 = 1;
979pub const PAGE_IS_WRITTEN: u32 = 2;
980pub const PAGE_IS_FILE: u32 = 4;
981pub const PAGE_IS_PRESENT: u32 = 8;
982pub const PAGE_IS_SWAPPED: u32 = 16;
983pub const PAGE_IS_PFNZERO: u32 = 32;
984pub const PAGE_IS_HUGE: u32 = 64;
985pub const PAGE_IS_SOFT_DIRTY: u32 = 128;
986pub const PAGE_IS_GUARD: u32 = 256;
987pub const PM_SCAN_WP_MATCHING: u32 = 1;
988pub const PM_SCAN_CHECK_WPASYNC: u32 = 2;
989pub const IORING_RW_ATTR_FLAG_PI: u32 = 1;
990pub const IORING_FILE_INDEX_ALLOC: i32 = -1;
991pub const IORING_SETUP_IOPOLL: u32 = 1;
992pub const IORING_SETUP_SQPOLL: u32 = 2;
993pub const IORING_SETUP_SQ_AFF: u32 = 4;
994pub const IORING_SETUP_CQSIZE: u32 = 8;
995pub const IORING_SETUP_CLAMP: u32 = 16;
996pub const IORING_SETUP_ATTACH_WQ: u32 = 32;
997pub const IORING_SETUP_R_DISABLED: u32 = 64;
998pub const IORING_SETUP_SUBMIT_ALL: u32 = 128;
999pub const IORING_SETUP_COOP_TASKRUN: u32 = 256;
1000pub const IORING_SETUP_TASKRUN_FLAG: u32 = 512;
1001pub const IORING_SETUP_SQE128: u32 = 1024;
1002pub const IORING_SETUP_CQE32: u32 = 2048;
1003pub const IORING_SETUP_SINGLE_ISSUER: u32 = 4096;
1004pub const IORING_SETUP_DEFER_TASKRUN: u32 = 8192;
1005pub const IORING_SETUP_NO_MMAP: u32 = 16384;
1006pub const IORING_SETUP_REGISTERED_FD_ONLY: u32 = 32768;
1007pub const IORING_SETUP_NO_SQARRAY: u32 = 65536;
1008pub const IORING_SETUP_HYBRID_IOPOLL: u32 = 131072;
1009pub const IORING_URING_CMD_FIXED: u32 = 1;
1010pub const IORING_URING_CMD_MASK: u32 = 1;
1011pub const IORING_FSYNC_DATASYNC: u32 = 1;
1012pub const IORING_TIMEOUT_ABS: u32 = 1;
1013pub const IORING_TIMEOUT_UPDATE: u32 = 2;
1014pub const IORING_TIMEOUT_BOOTTIME: u32 = 4;
1015pub const IORING_TIMEOUT_REALTIME: u32 = 8;
1016pub const IORING_LINK_TIMEOUT_UPDATE: u32 = 16;
1017pub const IORING_TIMEOUT_ETIME_SUCCESS: u32 = 32;
1018pub const IORING_TIMEOUT_MULTISHOT: u32 = 64;
1019pub const IORING_TIMEOUT_CLOCK_MASK: u32 = 12;
1020pub const IORING_TIMEOUT_UPDATE_MASK: u32 = 18;
1021pub const SPLICE_F_FD_IN_FIXED: u32 = 2147483648;
1022pub const IORING_POLL_ADD_MULTI: u32 = 1;
1023pub const IORING_POLL_UPDATE_EVENTS: u32 = 2;
1024pub const IORING_POLL_UPDATE_USER_DATA: u32 = 4;
1025pub const IORING_POLL_ADD_LEVEL: u32 = 8;
1026pub const IORING_ASYNC_CANCEL_ALL: u32 = 1;
1027pub const IORING_ASYNC_CANCEL_FD: u32 = 2;
1028pub const IORING_ASYNC_CANCEL_ANY: u32 = 4;
1029pub const IORING_ASYNC_CANCEL_FD_FIXED: u32 = 8;
1030pub const IORING_ASYNC_CANCEL_USERDATA: u32 = 16;
1031pub const IORING_ASYNC_CANCEL_OP: u32 = 32;
1032pub const IORING_RECVSEND_POLL_FIRST: u32 = 1;
1033pub const IORING_RECV_MULTISHOT: u32 = 2;
1034pub const IORING_RECVSEND_FIXED_BUF: u32 = 4;
1035pub const IORING_SEND_ZC_REPORT_USAGE: u32 = 8;
1036pub const IORING_RECVSEND_BUNDLE: u32 = 16;
1037pub const IORING_SEND_VECTORIZED: u32 = 32;
1038pub const IORING_NOTIF_USAGE_ZC_COPIED: u32 = 2147483648;
1039pub const IORING_ACCEPT_MULTISHOT: u32 = 1;
1040pub const IORING_ACCEPT_DONTWAIT: u32 = 2;
1041pub const IORING_ACCEPT_POLL_FIRST: u32 = 4;
1042pub const IORING_MSG_RING_CQE_SKIP: u32 = 1;
1043pub const IORING_MSG_RING_FLAGS_PASS: u32 = 2;
1044pub const IORING_FIXED_FD_NO_CLOEXEC: u32 = 1;
1045pub const IORING_NOP_INJECT_RESULT: u32 = 1;
1046pub const IORING_NOP_FILE: u32 = 2;
1047pub const IORING_NOP_FIXED_FILE: u32 = 4;
1048pub const IORING_NOP_FIXED_BUFFER: u32 = 8;
1049pub const IORING_NOP_TW: u32 = 16;
1050pub const IORING_CQE_F_BUFFER: u32 = 1;
1051pub const IORING_CQE_F_MORE: u32 = 2;
1052pub const IORING_CQE_F_SOCK_NONEMPTY: u32 = 4;
1053pub const IORING_CQE_F_NOTIF: u32 = 8;
1054pub const IORING_CQE_F_BUF_MORE: u32 = 16;
1055pub const IORING_CQE_BUFFER_SHIFT: u32 = 16;
1056pub const IORING_OFF_SQ_RING: u32 = 0;
1057pub const IORING_OFF_CQ_RING: u32 = 134217728;
1058pub const IORING_OFF_SQES: u32 = 268435456;
1059pub const IORING_OFF_PBUF_RING: u32 = 2147483648;
1060pub const IORING_OFF_PBUF_SHIFT: u32 = 16;
1061pub const IORING_OFF_MMAP_MASK: u32 = 4160749568;
1062pub const IORING_SQ_NEED_WAKEUP: u32 = 1;
1063pub const IORING_SQ_CQ_OVERFLOW: u32 = 2;
1064pub const IORING_SQ_TASKRUN: u32 = 4;
1065pub const IORING_CQ_EVENTFD_DISABLED: u32 = 1;
1066pub const IORING_ENTER_GETEVENTS: u32 = 1;
1067pub const IORING_ENTER_SQ_WAKEUP: u32 = 2;
1068pub const IORING_ENTER_SQ_WAIT: u32 = 4;
1069pub const IORING_ENTER_EXT_ARG: u32 = 8;
1070pub const IORING_ENTER_REGISTERED_RING: u32 = 16;
1071pub const IORING_ENTER_ABS_TIMER: u32 = 32;
1072pub const IORING_ENTER_EXT_ARG_REG: u32 = 64;
1073pub const IORING_ENTER_NO_IOWAIT: u32 = 128;
1074pub const IORING_FEAT_SINGLE_MMAP: u32 = 1;
1075pub const IORING_FEAT_NODROP: u32 = 2;
1076pub const IORING_FEAT_SUBMIT_STABLE: u32 = 4;
1077pub const IORING_FEAT_RW_CUR_POS: u32 = 8;
1078pub const IORING_FEAT_CUR_PERSONALITY: u32 = 16;
1079pub const IORING_FEAT_FAST_POLL: u32 = 32;
1080pub const IORING_FEAT_POLL_32BITS: u32 = 64;
1081pub const IORING_FEAT_SQPOLL_NONFIXED: u32 = 128;
1082pub const IORING_FEAT_EXT_ARG: u32 = 256;
1083pub const IORING_FEAT_NATIVE_WORKERS: u32 = 512;
1084pub const IORING_FEAT_RSRC_TAGS: u32 = 1024;
1085pub const IORING_FEAT_CQE_SKIP: u32 = 2048;
1086pub const IORING_FEAT_LINKED_FILE: u32 = 4096;
1087pub const IORING_FEAT_REG_REG_RING: u32 = 8192;
1088pub const IORING_FEAT_RECVSEND_BUNDLE: u32 = 16384;
1089pub const IORING_FEAT_MIN_TIMEOUT: u32 = 32768;
1090pub const IORING_FEAT_RW_ATTR: u32 = 65536;
1091pub const IORING_FEAT_NO_IOWAIT: u32 = 131072;
1092pub const IORING_RSRC_REGISTER_SPARSE: u32 = 1;
1093pub const IORING_REGISTER_FILES_SKIP: i32 = -2;
1094pub const IO_URING_OP_SUPPORTED: u32 = 1;
1095pub const IORING_TIMESTAMP_HW_SHIFT: u32 = 16;
1096pub const IORING_TIMESTAMP_TYPE_SHIFT: u32 = 17;
1097pub const IORING_ZCRX_AREA_SHIFT: u32 = 48;
1098pub const IORING_MEM_REGION_TYPE_USER: _bindgen_ty_1 = _bindgen_ty_1::IORING_MEM_REGION_TYPE_USER;
1099pub const IORING_MEM_REGION_REG_WAIT_ARG: _bindgen_ty_2 = _bindgen_ty_2::IORING_MEM_REGION_REG_WAIT_ARG;
1100pub const IORING_REGISTER_SRC_REGISTERED: _bindgen_ty_3 = _bindgen_ty_3::IORING_REGISTER_SRC_REGISTERED;
1101pub const IORING_REGISTER_DST_REPLACE: _bindgen_ty_3 = _bindgen_ty_3::IORING_REGISTER_DST_REPLACE;
1102pub const IORING_REG_WAIT_TS: _bindgen_ty_4 = _bindgen_ty_4::IORING_REG_WAIT_TS;
1103#[repr(u32)]
1104#[non_exhaustive]
1105#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1106pub enum fsconfig_command {
1107FSCONFIG_SET_FLAG = 0,
1108FSCONFIG_SET_STRING = 1,
1109FSCONFIG_SET_BINARY = 2,
1110FSCONFIG_SET_PATH = 3,
1111FSCONFIG_SET_PATH_EMPTY = 4,
1112FSCONFIG_SET_FD = 5,
1113FSCONFIG_CMD_CREATE = 6,
1114FSCONFIG_CMD_RECONFIGURE = 7,
1115FSCONFIG_CMD_CREATE_EXCL = 8,
1116}
1117#[repr(u32)]
1118#[non_exhaustive]
1119#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1120pub enum procfs_ino {
1121PROCFS_ROOT_INO = 1,
1122}
1123#[repr(u32)]
1124#[non_exhaustive]
1125#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1126pub enum procmap_query_flags {
1127PROCMAP_QUERY_VMA_READABLE = 1,
1128PROCMAP_QUERY_VMA_WRITABLE = 2,
1129PROCMAP_QUERY_VMA_EXECUTABLE = 4,
1130PROCMAP_QUERY_VMA_SHARED = 8,
1131PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16,
1132PROCMAP_QUERY_FILE_BACKED_VMA = 32,
1133}
1134#[repr(u32)]
1135#[non_exhaustive]
1136#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1137pub enum io_uring_sqe_flags_bit {
1138IOSQE_FIXED_FILE_BIT = 0,
1139IOSQE_IO_DRAIN_BIT = 1,
1140IOSQE_IO_LINK_BIT = 2,
1141IOSQE_IO_HARDLINK_BIT = 3,
1142IOSQE_ASYNC_BIT = 4,
1143IOSQE_BUFFER_SELECT_BIT = 5,
1144IOSQE_CQE_SKIP_SUCCESS_BIT = 6,
1145}
1146#[repr(u32)]
1147#[non_exhaustive]
1148#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1149pub enum io_uring_op {
1150IORING_OP_NOP = 0,
1151IORING_OP_READV = 1,
1152IORING_OP_WRITEV = 2,
1153IORING_OP_FSYNC = 3,
1154IORING_OP_READ_FIXED = 4,
1155IORING_OP_WRITE_FIXED = 5,
1156IORING_OP_POLL_ADD = 6,
1157IORING_OP_POLL_REMOVE = 7,
1158IORING_OP_SYNC_FILE_RANGE = 8,
1159IORING_OP_SENDMSG = 9,
1160IORING_OP_RECVMSG = 10,
1161IORING_OP_TIMEOUT = 11,
1162IORING_OP_TIMEOUT_REMOVE = 12,
1163IORING_OP_ACCEPT = 13,
1164IORING_OP_ASYNC_CANCEL = 14,
1165IORING_OP_LINK_TIMEOUT = 15,
1166IORING_OP_CONNECT = 16,
1167IORING_OP_FALLOCATE = 17,
1168IORING_OP_OPENAT = 18,
1169IORING_OP_CLOSE = 19,
1170IORING_OP_FILES_UPDATE = 20,
1171IORING_OP_STATX = 21,
1172IORING_OP_READ = 22,
1173IORING_OP_WRITE = 23,
1174IORING_OP_FADVISE = 24,
1175IORING_OP_MADVISE = 25,
1176IORING_OP_SEND = 26,
1177IORING_OP_RECV = 27,
1178IORING_OP_OPENAT2 = 28,
1179IORING_OP_EPOLL_CTL = 29,
1180IORING_OP_SPLICE = 30,
1181IORING_OP_PROVIDE_BUFFERS = 31,
1182IORING_OP_REMOVE_BUFFERS = 32,
1183IORING_OP_TEE = 33,
1184IORING_OP_SHUTDOWN = 34,
1185IORING_OP_RENAMEAT = 35,
1186IORING_OP_UNLINKAT = 36,
1187IORING_OP_MKDIRAT = 37,
1188IORING_OP_SYMLINKAT = 38,
1189IORING_OP_LINKAT = 39,
1190IORING_OP_MSG_RING = 40,
1191IORING_OP_FSETXATTR = 41,
1192IORING_OP_SETXATTR = 42,
1193IORING_OP_FGETXATTR = 43,
1194IORING_OP_GETXATTR = 44,
1195IORING_OP_SOCKET = 45,
1196IORING_OP_URING_CMD = 46,
1197IORING_OP_SEND_ZC = 47,
1198IORING_OP_SENDMSG_ZC = 48,
1199IORING_OP_READ_MULTISHOT = 49,
1200IORING_OP_WAITID = 50,
1201IORING_OP_FUTEX_WAIT = 51,
1202IORING_OP_FUTEX_WAKE = 52,
1203IORING_OP_FUTEX_WAITV = 53,
1204IORING_OP_FIXED_FD_INSTALL = 54,
1205IORING_OP_FTRUNCATE = 55,
1206IORING_OP_BIND = 56,
1207IORING_OP_LISTEN = 57,
1208IORING_OP_RECV_ZC = 58,
1209IORING_OP_EPOLL_WAIT = 59,
1210IORING_OP_READV_FIXED = 60,
1211IORING_OP_WRITEV_FIXED = 61,
1212IORING_OP_PIPE = 62,
1213IORING_OP_LAST = 63,
1214}
1215#[repr(u32)]
1216#[non_exhaustive]
1217#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1218pub enum io_uring_msg_ring_flags {
1219IORING_MSG_DATA = 0,
1220IORING_MSG_SEND_FD = 1,
1221}
1222#[repr(u32)]
1223#[non_exhaustive]
1224#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1225pub enum io_uring_register_op {
1226IORING_REGISTER_BUFFERS = 0,
1227IORING_UNREGISTER_BUFFERS = 1,
1228IORING_REGISTER_FILES = 2,
1229IORING_UNREGISTER_FILES = 3,
1230IORING_REGISTER_EVENTFD = 4,
1231IORING_UNREGISTER_EVENTFD = 5,
1232IORING_REGISTER_FILES_UPDATE = 6,
1233IORING_REGISTER_EVENTFD_ASYNC = 7,
1234IORING_REGISTER_PROBE = 8,
1235IORING_REGISTER_PERSONALITY = 9,
1236IORING_UNREGISTER_PERSONALITY = 10,
1237IORING_REGISTER_RESTRICTIONS = 11,
1238IORING_REGISTER_ENABLE_RINGS = 12,
1239IORING_REGISTER_FILES2 = 13,
1240IORING_REGISTER_FILES_UPDATE2 = 14,
1241IORING_REGISTER_BUFFERS2 = 15,
1242IORING_REGISTER_BUFFERS_UPDATE = 16,
1243IORING_REGISTER_IOWQ_AFF = 17,
1244IORING_UNREGISTER_IOWQ_AFF = 18,
1245IORING_REGISTER_IOWQ_MAX_WORKERS = 19,
1246IORING_REGISTER_RING_FDS = 20,
1247IORING_UNREGISTER_RING_FDS = 21,
1248IORING_REGISTER_PBUF_RING = 22,
1249IORING_UNREGISTER_PBUF_RING = 23,
1250IORING_REGISTER_SYNC_CANCEL = 24,
1251IORING_REGISTER_FILE_ALLOC_RANGE = 25,
1252IORING_REGISTER_PBUF_STATUS = 26,
1253IORING_REGISTER_NAPI = 27,
1254IORING_UNREGISTER_NAPI = 28,
1255IORING_REGISTER_CLOCK = 29,
1256IORING_REGISTER_CLONE_BUFFERS = 30,
1257IORING_REGISTER_SEND_MSG_RING = 31,
1258IORING_REGISTER_ZCRX_IFQ = 32,
1259IORING_REGISTER_RESIZE_RINGS = 33,
1260IORING_REGISTER_MEM_REGION = 34,
1261IORING_REGISTER_LAST = 35,
1262IORING_REGISTER_USE_REGISTERED_RING = 2147483648,
1263}
1264#[repr(u32)]
1265#[non_exhaustive]
1266#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1267pub enum io_wq_type {
1268IO_WQ_BOUND = 0,
1269IO_WQ_UNBOUND = 1,
1270}
1271#[repr(u32)]
1272#[non_exhaustive]
1273#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1274pub enum _bindgen_ty_1 {
1275IORING_MEM_REGION_TYPE_USER = 1,
1276}
1277#[repr(u32)]
1278#[non_exhaustive]
1279#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1280pub enum _bindgen_ty_2 {
1281IORING_MEM_REGION_REG_WAIT_ARG = 1,
1282}
1283#[repr(u32)]
1284#[non_exhaustive]
1285#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1286pub enum _bindgen_ty_3 {
1287IORING_REGISTER_SRC_REGISTERED = 1,
1288IORING_REGISTER_DST_REPLACE = 2,
1289}
1290#[repr(u32)]
1291#[non_exhaustive]
1292#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1293pub enum io_uring_register_pbuf_ring_flags {
1294IOU_PBUF_RING_MMAP = 1,
1295IOU_PBUF_RING_INC = 2,
1296}
1297#[repr(u32)]
1298#[non_exhaustive]
1299#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1300pub enum io_uring_napi_op {
1301IO_URING_NAPI_REGISTER_OP = 0,
1302IO_URING_NAPI_STATIC_ADD_ID = 1,
1303IO_URING_NAPI_STATIC_DEL_ID = 2,
1304}
1305#[repr(u32)]
1306#[non_exhaustive]
1307#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1308pub enum io_uring_napi_tracking_strategy {
1309IO_URING_NAPI_TRACKING_DYNAMIC = 0,
1310IO_URING_NAPI_TRACKING_STATIC = 1,
1311IO_URING_NAPI_TRACKING_INACTIVE = 255,
1312}
1313#[repr(u32)]
1314#[non_exhaustive]
1315#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1316pub enum io_uring_register_restriction_op {
1317IORING_RESTRICTION_REGISTER_OP = 0,
1318IORING_RESTRICTION_SQE_OP = 1,
1319IORING_RESTRICTION_SQE_FLAGS_ALLOWED = 2,
1320IORING_RESTRICTION_SQE_FLAGS_REQUIRED = 3,
1321IORING_RESTRICTION_LAST = 4,
1322}
1323#[repr(u32)]
1324#[non_exhaustive]
1325#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1326pub enum _bindgen_ty_4 {
1327IORING_REG_WAIT_TS = 1,
1328}
1329#[repr(u32)]
1330#[non_exhaustive]
1331#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1332pub enum io_uring_socket_op {
1333SOCKET_URING_OP_SIOCINQ = 0,
1334SOCKET_URING_OP_SIOCOUTQ = 1,
1335SOCKET_URING_OP_GETSOCKOPT = 2,
1336SOCKET_URING_OP_SETSOCKOPT = 3,
1337SOCKET_URING_OP_TX_TIMESTAMP = 4,
1338}
1339#[repr(u32)]
1340#[non_exhaustive]
1341#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1342pub enum io_uring_zcrx_area_flags {
1343IORING_ZCRX_AREA_DMABUF = 1,
1344}
1345#[repr(C)]
1346#[derive(Copy, Clone)]
1347pub union fscrypt_get_policy_ex_arg__bindgen_ty_1 {
1348pub version: __u8,
1349pub v1: fscrypt_policy_v1,
1350pub v2: fscrypt_policy_v2,
1351}
1352#[repr(C)]
1353#[derive(Copy, Clone)]
1354pub union fscrypt_key_specifier__bindgen_ty_1 {
1355pub __reserved: [__u8; 32usize],
1356pub descriptor: [__u8; 8usize],
1357pub identifier: [__u8; 16usize],
1358}
1359#[repr(C)]
1360#[derive(Copy, Clone)]
1361pub union io_uring_sqe__bindgen_ty_1 {
1362pub off: __u64,
1363pub addr2: __u64,
1364pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_1__bindgen_ty_1,
1365}
1366#[repr(C)]
1367#[derive(Copy, Clone)]
1368pub union io_uring_sqe__bindgen_ty_2 {
1369pub addr: __u64,
1370pub splice_off_in: __u64,
1371pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_2__bindgen_ty_1,
1372}
1373#[repr(C)]
1374#[derive(Copy, Clone)]
1375pub union io_uring_sqe__bindgen_ty_3 {
1376pub rw_flags: __u32,
1377pub fsync_flags: __u32,
1378pub poll_events: __u16,
1379pub poll32_events: __u32,
1380pub sync_range_flags: __u32,
1381pub msg_flags: __u32,
1382pub timeout_flags: __u32,
1383pub accept_flags: __u32,
1384pub cancel_flags: __u32,
1385pub open_flags: __u32,
1386pub statx_flags: __u32,
1387pub fadvise_advice: __u32,
1388pub splice_flags: __u32,
1389pub rename_flags: __u32,
1390pub unlink_flags: __u32,
1391pub hardlink_flags: __u32,
1392pub xattr_flags: __u32,
1393pub msg_ring_flags: __u32,
1394pub uring_cmd_flags: __u32,
1395pub waitid_flags: __u32,
1396pub futex_flags: __u32,
1397pub install_fd_flags: __u32,
1398pub nop_flags: __u32,
1399pub pipe_flags: __u32,
1400}
1401#[repr(C, packed)]
1402#[derive(Copy, Clone)]
1403pub union io_uring_sqe__bindgen_ty_4 {
1404pub buf_index: __u16,
1405pub buf_group: __u16,
1406}
1407#[repr(C)]
1408#[derive(Copy, Clone)]
1409pub union io_uring_sqe__bindgen_ty_5 {
1410pub splice_fd_in: __s32,
1411pub file_index: __u32,
1412pub zcrx_ifq_idx: __u32,
1413pub optlen: __u32,
1414pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_5__bindgen_ty_1,
1415pub __bindgen_anon_2: io_uring_sqe__bindgen_ty_5__bindgen_ty_2,
1416}
1417#[repr(C)]
1418#[derive(Copy, Clone)]
1419pub union io_uring_restriction__bindgen_ty_1 {
1420pub register_op: __u8,
1421pub sqe_op: __u8,
1422pub sqe_flags: __u8,
1423}
1424impl<T> __IncompleteArrayField<T> {
1425#[inline]
1426pub const fn new() -> Self {
1427__IncompleteArrayField(::core::marker::PhantomData, [])
1428}
1429#[inline]
1430pub fn as_ptr(&self) -> *const T {
1431self as *const _ as *const T
1432}
1433#[inline]
1434pub fn as_mut_ptr(&mut self) -> *mut T {
1435self as *mut _ as *mut T
1436}
1437#[inline]
1438pub unsafe fn as_slice(&self, len: usize) -> &[T] {
1439::core::slice::from_raw_parts(self.as_ptr(), len)
1440}
1441#[inline]
1442pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
1443::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
1444}
1445}
1446impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
1447fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1448fmt.write_str("__IncompleteArrayField")
1449}
1450}
1451impl<T> __BindgenUnionField<T> {
1452#[inline]
1453pub const fn new() -> Self {
1454__BindgenUnionField(::core::marker::PhantomData)
1455}
1456#[inline]
1457pub unsafe fn as_ref(&self) -> &T {
1458::core::mem::transmute(self)
1459}
1460#[inline]
1461pub unsafe fn as_mut(&mut self) -> &mut T {
1462::core::mem::transmute(self)
1463}
1464}
1465impl<T> ::core::default::Default for __BindgenUnionField<T> {
1466#[inline]
1467fn default() -> Self {
1468Self::new()
1469}
1470}
1471impl<T> ::core::clone::Clone for __BindgenUnionField<T> {
1472#[inline]
1473fn clone(&self) -> Self {
1474*self
1475}
1476}
1477impl<T> ::core::marker::Copy for __BindgenUnionField<T> {}
1478impl<T> ::core::fmt::Debug for __BindgenUnionField<T> {
1479fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1480fmt.write_str("__BindgenUnionField")
1481}
1482}
1483impl<T> ::core::hash::Hash for __BindgenUnionField<T> {
1484fn hash<H: ::core::hash::Hasher>(&self, _state: &mut H) {}
1485}
1486impl<T> ::core::cmp::PartialEq for __BindgenUnionField<T> {
1487fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
1488true
1489}
1490}
1491impl<T> ::core::cmp::Eq for __BindgenUnionField<T> {}