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