linux_raw_sys/
lib.rs

1#![allow(non_camel_case_types, non_upper_case_globals, non_snake_case)]
2#![cfg_attr(not(feature = "std"), no_std)]
3/*
4Unsafe functions no longer implicitly create unsafe blocks (RFC 2585).
5While newer bindgen versions follow this convention, we support Rust 1.63 which warns about
6this behavior. We can simply silence these warnings.
7*/
8#![allow(unused_unsafe)]
9
10#[cfg(feature = "std")]
11pub use std::os::raw as ctypes;
12
13#[cfg(all(not(feature = "std"), feature = "no_std"))]
14pub mod ctypes {
15    // The signedness of `char` is platform-specific, and we have to match
16    // what Rust's `CStr` uses.
17    #[cfg(any(
18        target_arch = "aarch64",
19        target_arch = "arm",
20        target_arch = "msp430",
21        target_arch = "powerpc",
22        target_arch = "powerpc64",
23        target_arch = "riscv32",
24        target_arch = "riscv64",
25        target_arch = "s390x",
26    ))]
27    pub type c_char = c_uchar;
28    #[cfg(any(
29        target_arch = "loongarch64",
30        target_arch = "mips",
31        target_arch = "mips64",
32        target_arch = "mips32r6",
33        target_arch = "mips64r6",
34        target_arch = "sparc",
35        target_arch = "sparc64",
36        target_arch = "x86",
37        target_arch = "x86_64",
38        target_arch = "xtensa",
39    ))]
40    pub type c_char = c_schar;
41
42    // The following assumes that Linux is always either ILP32 or LP64,
43    // and char is always 8-bit.
44    //
45    // In theory, `c_long` and `c_ulong` could be `isize` and `usize`
46    // respectively, however in practice Linux doesn't use them in that way
47    // consistently. So stick with the convention followed by `libc` and
48    // others and use the fixed-width types.
49    pub type c_schar = i8;
50    pub type c_uchar = u8;
51    pub type c_short = i16;
52    pub type c_ushort = u16;
53    pub type c_int = i32;
54    pub type c_uint = u32;
55    #[cfg(target_pointer_width = "32")]
56    pub type c_long = i32;
57    #[cfg(target_pointer_width = "32")]
58    pub type c_ulong = u32;
59    #[cfg(target_pointer_width = "64")]
60    pub type c_long = i64;
61    #[cfg(target_pointer_width = "64")]
62    pub type c_ulong = u64;
63    pub type c_longlong = i64;
64    pub type c_ulonglong = u64;
65    pub type c_float = f32;
66    pub type c_double = f64;
67
68    pub use core::ffi::c_void;
69}
70
71// Confirm that our type definitions above match the actual type definitions.
72#[cfg(test)]
73mod assertions {
74    use super::ctypes;
75    static_assertions::assert_eq_size!(ctypes::c_char, libc::c_char);
76    static_assertions::assert_type_eq_all!(ctypes::c_schar, libc::c_schar);
77    static_assertions::assert_type_eq_all!(ctypes::c_uchar, libc::c_uchar);
78    static_assertions::assert_type_eq_all!(ctypes::c_short, libc::c_short);
79    static_assertions::assert_type_eq_all!(ctypes::c_ushort, libc::c_ushort);
80    static_assertions::assert_type_eq_all!(ctypes::c_int, libc::c_int);
81    static_assertions::assert_type_eq_all!(ctypes::c_uint, libc::c_uint);
82    static_assertions::assert_type_eq_all!(ctypes::c_long, libc::c_long);
83    static_assertions::assert_type_eq_all!(ctypes::c_ulong, libc::c_ulong);
84    static_assertions::assert_type_eq_all!(ctypes::c_longlong, libc::c_longlong);
85    static_assertions::assert_type_eq_all!(ctypes::c_ulonglong, libc::c_ulonglong);
86    static_assertions::assert_type_eq_all!(ctypes::c_float, libc::c_float);
87    static_assertions::assert_type_eq_all!(ctypes::c_double, libc::c_double);
88}
89
90// We don't enable `derive_eq` in bindgen because adding `PartialEq`/`Eq` to
91// *all* structs noticeably increases compile times. But we can add a few
92// manual impls where they're especially useful.
93#[cfg(feature = "general")]
94impl PartialEq for general::__kernel_timespec {
95    fn eq(&self, other: &Self) -> bool {
96        ({
97            let Self { tv_sec, tv_nsec } = self;
98            (tv_sec, tv_nsec)
99        }) == ({
100            let Self { tv_sec, tv_nsec } = other;
101            (tv_sec, tv_nsec)
102        })
103    }
104}
105#[cfg(feature = "general")]
106impl Eq for general::__kernel_timespec {}
107
108#[cfg(feature = "net")]
109pub mod cmsg_macros {
110    use crate::ctypes::{c_long, c_uchar, c_uint};
111    use crate::net::{cmsghdr, msghdr};
112    use core::mem::size_of;
113    use core::ptr;
114
115    pub const unsafe fn CMSG_ALIGN(len: c_uint) -> c_uint {
116        let c_long_size = size_of::<c_long>() as c_uint;
117        (len + c_long_size - 1) & !(c_long_size - 1)
118    }
119
120    pub const unsafe fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut c_uchar {
121        (cmsg as *mut c_uchar).add(size_of::<cmsghdr>())
122    }
123
124    pub const unsafe fn CMSG_SPACE(len: c_uint) -> c_uint {
125        size_of::<cmsghdr>() as c_uint + CMSG_ALIGN(len)
126    }
127
128    pub const unsafe fn CMSG_LEN(len: c_uint) -> c_uint {
129        size_of::<cmsghdr>() as c_uint + len
130    }
131
132    pub const unsafe fn CMSG_FIRSTHDR(mhdr: *const msghdr) -> *mut cmsghdr {
133        if (*mhdr).msg_controllen < size_of::<cmsghdr>() as _ {
134            return ptr::null_mut();
135        }
136
137        (*mhdr).msg_control as *mut cmsghdr
138    }
139
140    pub unsafe fn CMSG_NXTHDR(mhdr: *const msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr {
141        // We convert from raw pointers to usize here, which may not be sound in a
142        // future version of Rust. Once the provenance rules are set in stone,
143        // it will be a good idea to give this function a once-over.
144
145        let cmsg_len = (*cmsg).cmsg_len;
146        let next_cmsg = (cmsg as *mut u8).add(CMSG_ALIGN(cmsg_len as _) as usize) as *mut cmsghdr;
147        let max = ((*mhdr).msg_control as usize) + ((*mhdr).msg_controllen as usize);
148
149        if cmsg_len < size_of::<cmsghdr>() as _ {
150            return ptr::null_mut();
151        }
152
153        if next_cmsg.add(1) as usize > max
154            || next_cmsg as usize + CMSG_ALIGN((*next_cmsg).cmsg_len as _) as usize > max
155        {
156            return ptr::null_mut();
157        }
158
159        next_cmsg
160    }
161}
162
163#[cfg(feature = "general")]
164pub mod select_macros {
165    use crate::ctypes::c_int;
166    use crate::general::__kernel_fd_set;
167    use core::mem::size_of;
168
169    pub unsafe fn FD_CLR(fd: c_int, set: *mut __kernel_fd_set) {
170        let bytes = set as *mut u8;
171        if fd >= 0 {
172            *bytes.add((fd / 8) as usize) &= !(1 << (fd % 8));
173        }
174    }
175
176    pub unsafe fn FD_SET(fd: c_int, set: *mut __kernel_fd_set) {
177        let bytes = set as *mut u8;
178        if fd >= 0 {
179            *bytes.add((fd / 8) as usize) |= 1 << (fd % 8);
180        }
181    }
182
183    pub unsafe fn FD_ISSET(fd: c_int, set: *const __kernel_fd_set) -> bool {
184        let bytes = set as *const u8;
185        if fd >= 0 {
186            *bytes.add((fd / 8) as usize) & (1 << (fd % 8)) != 0
187        } else {
188            false
189        }
190    }
191
192    pub unsafe fn FD_ZERO(set: *mut __kernel_fd_set) {
193        let bytes = set as *mut u8;
194        core::ptr::write_bytes(bytes, 0, size_of::<__kernel_fd_set>());
195    }
196}
197
198#[cfg(feature = "general")]
199pub mod signal_macros {
200    pub const SIG_DFL: super::general::__kernel_sighandler_t = None;
201
202    /// Rust doesn't currently permit us to use `transmute` to convert the
203    /// `SIG_IGN` value into a function pointer in a `const` initializer, so
204    /// we make it a function instead.
205    ///
206    #[inline]
207    pub const fn sig_ign() -> super::general::__kernel_sighandler_t {
208        // Safety: This creates an invalid pointer, but the pointer type
209        // includes `unsafe`, which covers the safety of calling it.
210        Some(unsafe {
211            core::mem::transmute::<usize, unsafe extern "C" fn(crate::ctypes::c_int)>(1)
212        })
213    }
214}
215
216#[cfg(feature = "elf")]
217pub mod elf;
218
219// The rest of this file is auto-generated!
220#[cfg(feature = "bootparam")]
221#[cfg(target_arch = "arm")]
222#[path = "arm/bootparam.rs"]
223pub mod bootparam;
224#[cfg(feature = "btrfs")]
225#[cfg(target_arch = "arm")]
226#[path = "arm/btrfs.rs"]
227pub mod btrfs;
228#[cfg(feature = "elf_uapi")]
229#[cfg(target_arch = "arm")]
230#[path = "arm/elf_uapi.rs"]
231pub mod elf_uapi;
232#[cfg(feature = "errno")]
233#[cfg(target_arch = "arm")]
234#[path = "arm/errno.rs"]
235pub mod errno;
236#[cfg(feature = "general")]
237#[cfg(target_arch = "arm")]
238#[path = "arm/general.rs"]
239pub mod general;
240#[cfg(feature = "if_arp")]
241#[cfg(target_arch = "arm")]
242#[path = "arm/if_arp.rs"]
243pub mod if_arp;
244#[cfg(feature = "if_ether")]
245#[cfg(target_arch = "arm")]
246#[path = "arm/if_ether.rs"]
247pub mod if_ether;
248#[cfg(feature = "if_packet")]
249#[cfg(target_arch = "arm")]
250#[path = "arm/if_packet.rs"]
251pub mod if_packet;
252#[cfg(feature = "image")]
253#[cfg(target_arch = "arm")]
254#[path = "arm/image.rs"]
255pub mod image;
256#[cfg(feature = "io_uring")]
257#[cfg(target_arch = "arm")]
258#[path = "arm/io_uring.rs"]
259pub mod io_uring;
260#[cfg(feature = "ioctl")]
261#[cfg(target_arch = "arm")]
262#[path = "arm/ioctl.rs"]
263pub mod ioctl;
264#[cfg(feature = "landlock")]
265#[cfg(target_arch = "arm")]
266#[path = "arm/landlock.rs"]
267pub mod landlock;
268#[cfg(feature = "loop_device")]
269#[cfg(target_arch = "arm")]
270#[path = "arm/loop_device.rs"]
271pub mod loop_device;
272#[cfg(feature = "mempolicy")]
273#[cfg(target_arch = "arm")]
274#[path = "arm/mempolicy.rs"]
275pub mod mempolicy;
276#[cfg(feature = "net")]
277#[cfg(target_arch = "arm")]
278#[path = "arm/net.rs"]
279pub mod net;
280#[cfg(feature = "netlink")]
281#[cfg(target_arch = "arm")]
282#[path = "arm/netlink.rs"]
283pub mod netlink;
284#[cfg(feature = "prctl")]
285#[cfg(target_arch = "arm")]
286#[path = "arm/prctl.rs"]
287pub mod prctl;
288#[cfg(feature = "ptrace")]
289#[cfg(target_arch = "arm")]
290#[path = "arm/ptrace.rs"]
291pub mod ptrace;
292#[cfg(feature = "system")]
293#[cfg(target_arch = "arm")]
294#[path = "arm/system.rs"]
295pub mod system;
296#[cfg(feature = "xdp")]
297#[cfg(target_arch = "arm")]
298#[path = "arm/xdp.rs"]
299pub mod xdp;
300#[cfg(feature = "bootparam")]
301#[cfg(target_arch = "aarch64")]
302#[path = "aarch64/bootparam.rs"]
303pub mod bootparam;
304#[cfg(feature = "btrfs")]
305#[cfg(target_arch = "aarch64")]
306#[path = "aarch64/btrfs.rs"]
307pub mod btrfs;
308#[cfg(feature = "elf_uapi")]
309#[cfg(target_arch = "aarch64")]
310#[path = "aarch64/elf_uapi.rs"]
311pub mod elf_uapi;
312#[cfg(feature = "errno")]
313#[cfg(target_arch = "aarch64")]
314#[path = "aarch64/errno.rs"]
315pub mod errno;
316#[cfg(feature = "general")]
317#[cfg(target_arch = "aarch64")]
318#[path = "aarch64/general.rs"]
319pub mod general;
320#[cfg(feature = "if_arp")]
321#[cfg(target_arch = "aarch64")]
322#[path = "aarch64/if_arp.rs"]
323pub mod if_arp;
324#[cfg(feature = "if_ether")]
325#[cfg(target_arch = "aarch64")]
326#[path = "aarch64/if_ether.rs"]
327pub mod if_ether;
328#[cfg(feature = "if_packet")]
329#[cfg(target_arch = "aarch64")]
330#[path = "aarch64/if_packet.rs"]
331pub mod if_packet;
332#[cfg(feature = "image")]
333#[cfg(target_arch = "aarch64")]
334#[path = "aarch64/image.rs"]
335pub mod image;
336#[cfg(feature = "io_uring")]
337#[cfg(target_arch = "aarch64")]
338#[path = "aarch64/io_uring.rs"]
339pub mod io_uring;
340#[cfg(feature = "ioctl")]
341#[cfg(target_arch = "aarch64")]
342#[path = "aarch64/ioctl.rs"]
343pub mod ioctl;
344#[cfg(feature = "landlock")]
345#[cfg(target_arch = "aarch64")]
346#[path = "aarch64/landlock.rs"]
347pub mod landlock;
348#[cfg(feature = "loop_device")]
349#[cfg(target_arch = "aarch64")]
350#[path = "aarch64/loop_device.rs"]
351pub mod loop_device;
352#[cfg(feature = "mempolicy")]
353#[cfg(target_arch = "aarch64")]
354#[path = "aarch64/mempolicy.rs"]
355pub mod mempolicy;
356#[cfg(feature = "net")]
357#[cfg(target_arch = "aarch64")]
358#[path = "aarch64/net.rs"]
359pub mod net;
360#[cfg(feature = "netlink")]
361#[cfg(target_arch = "aarch64")]
362#[path = "aarch64/netlink.rs"]
363pub mod netlink;
364#[cfg(feature = "prctl")]
365#[cfg(target_arch = "aarch64")]
366#[path = "aarch64/prctl.rs"]
367pub mod prctl;
368#[cfg(feature = "ptrace")]
369#[cfg(target_arch = "aarch64")]
370#[path = "aarch64/ptrace.rs"]
371pub mod ptrace;
372#[cfg(feature = "system")]
373#[cfg(target_arch = "aarch64")]
374#[path = "aarch64/system.rs"]
375pub mod system;
376#[cfg(feature = "xdp")]
377#[cfg(target_arch = "aarch64")]
378#[path = "aarch64/xdp.rs"]
379pub mod xdp;
380#[cfg(feature = "bootparam")]
381#[cfg(target_arch = "csky")]
382#[path = "csky/bootparam.rs"]
383pub mod bootparam;
384#[cfg(feature = "btrfs")]
385#[cfg(target_arch = "csky")]
386#[path = "csky/btrfs.rs"]
387pub mod btrfs;
388#[cfg(feature = "elf_uapi")]
389#[cfg(target_arch = "csky")]
390#[path = "csky/elf_uapi.rs"]
391pub mod elf_uapi;
392#[cfg(feature = "errno")]
393#[cfg(target_arch = "csky")]
394#[path = "csky/errno.rs"]
395pub mod errno;
396#[cfg(feature = "general")]
397#[cfg(target_arch = "csky")]
398#[path = "csky/general.rs"]
399pub mod general;
400#[cfg(feature = "if_arp")]
401#[cfg(target_arch = "csky")]
402#[path = "csky/if_arp.rs"]
403pub mod if_arp;
404#[cfg(feature = "if_ether")]
405#[cfg(target_arch = "csky")]
406#[path = "csky/if_ether.rs"]
407pub mod if_ether;
408#[cfg(feature = "if_packet")]
409#[cfg(target_arch = "csky")]
410#[path = "csky/if_packet.rs"]
411pub mod if_packet;
412#[cfg(feature = "image")]
413#[cfg(target_arch = "csky")]
414#[path = "csky/image.rs"]
415pub mod image;
416#[cfg(feature = "io_uring")]
417#[cfg(target_arch = "csky")]
418#[path = "csky/io_uring.rs"]
419pub mod io_uring;
420#[cfg(feature = "ioctl")]
421#[cfg(target_arch = "csky")]
422#[path = "csky/ioctl.rs"]
423pub mod ioctl;
424#[cfg(feature = "landlock")]
425#[cfg(target_arch = "csky")]
426#[path = "csky/landlock.rs"]
427pub mod landlock;
428#[cfg(feature = "loop_device")]
429#[cfg(target_arch = "csky")]
430#[path = "csky/loop_device.rs"]
431pub mod loop_device;
432#[cfg(feature = "mempolicy")]
433#[cfg(target_arch = "csky")]
434#[path = "csky/mempolicy.rs"]
435pub mod mempolicy;
436#[cfg(feature = "net")]
437#[cfg(target_arch = "csky")]
438#[path = "csky/net.rs"]
439pub mod net;
440#[cfg(feature = "netlink")]
441#[cfg(target_arch = "csky")]
442#[path = "csky/netlink.rs"]
443pub mod netlink;
444#[cfg(feature = "prctl")]
445#[cfg(target_arch = "csky")]
446#[path = "csky/prctl.rs"]
447pub mod prctl;
448#[cfg(feature = "ptrace")]
449#[cfg(target_arch = "csky")]
450#[path = "csky/ptrace.rs"]
451pub mod ptrace;
452#[cfg(feature = "system")]
453#[cfg(target_arch = "csky")]
454#[path = "csky/system.rs"]
455pub mod system;
456#[cfg(feature = "xdp")]
457#[cfg(target_arch = "csky")]
458#[path = "csky/xdp.rs"]
459pub mod xdp;
460#[cfg(feature = "bootparam")]
461#[cfg(target_arch = "loongarch64")]
462#[path = "loongarch64/bootparam.rs"]
463pub mod bootparam;
464#[cfg(feature = "btrfs")]
465#[cfg(target_arch = "loongarch64")]
466#[path = "loongarch64/btrfs.rs"]
467pub mod btrfs;
468#[cfg(feature = "elf_uapi")]
469#[cfg(target_arch = "loongarch64")]
470#[path = "loongarch64/elf_uapi.rs"]
471pub mod elf_uapi;
472#[cfg(feature = "errno")]
473#[cfg(target_arch = "loongarch64")]
474#[path = "loongarch64/errno.rs"]
475pub mod errno;
476#[cfg(feature = "general")]
477#[cfg(target_arch = "loongarch64")]
478#[path = "loongarch64/general.rs"]
479pub mod general;
480#[cfg(feature = "if_arp")]
481#[cfg(target_arch = "loongarch64")]
482#[path = "loongarch64/if_arp.rs"]
483pub mod if_arp;
484#[cfg(feature = "if_ether")]
485#[cfg(target_arch = "loongarch64")]
486#[path = "loongarch64/if_ether.rs"]
487pub mod if_ether;
488#[cfg(feature = "if_packet")]
489#[cfg(target_arch = "loongarch64")]
490#[path = "loongarch64/if_packet.rs"]
491pub mod if_packet;
492#[cfg(feature = "image")]
493#[cfg(target_arch = "loongarch64")]
494#[path = "loongarch64/image.rs"]
495pub mod image;
496#[cfg(feature = "io_uring")]
497#[cfg(target_arch = "loongarch64")]
498#[path = "loongarch64/io_uring.rs"]
499pub mod io_uring;
500#[cfg(feature = "ioctl")]
501#[cfg(target_arch = "loongarch64")]
502#[path = "loongarch64/ioctl.rs"]
503pub mod ioctl;
504#[cfg(feature = "landlock")]
505#[cfg(target_arch = "loongarch64")]
506#[path = "loongarch64/landlock.rs"]
507pub mod landlock;
508#[cfg(feature = "loop_device")]
509#[cfg(target_arch = "loongarch64")]
510#[path = "loongarch64/loop_device.rs"]
511pub mod loop_device;
512#[cfg(feature = "mempolicy")]
513#[cfg(target_arch = "loongarch64")]
514#[path = "loongarch64/mempolicy.rs"]
515pub mod mempolicy;
516#[cfg(feature = "net")]
517#[cfg(target_arch = "loongarch64")]
518#[path = "loongarch64/net.rs"]
519pub mod net;
520#[cfg(feature = "netlink")]
521#[cfg(target_arch = "loongarch64")]
522#[path = "loongarch64/netlink.rs"]
523pub mod netlink;
524#[cfg(feature = "prctl")]
525#[cfg(target_arch = "loongarch64")]
526#[path = "loongarch64/prctl.rs"]
527pub mod prctl;
528#[cfg(feature = "ptrace")]
529#[cfg(target_arch = "loongarch64")]
530#[path = "loongarch64/ptrace.rs"]
531pub mod ptrace;
532#[cfg(feature = "system")]
533#[cfg(target_arch = "loongarch64")]
534#[path = "loongarch64/system.rs"]
535pub mod system;
536#[cfg(feature = "xdp")]
537#[cfg(target_arch = "loongarch64")]
538#[path = "loongarch64/xdp.rs"]
539pub mod xdp;
540#[cfg(feature = "bootparam")]
541#[cfg(target_arch = "mips")]
542#[path = "mips/bootparam.rs"]
543pub mod bootparam;
544#[cfg(feature = "btrfs")]
545#[cfg(target_arch = "mips")]
546#[path = "mips/btrfs.rs"]
547pub mod btrfs;
548#[cfg(feature = "elf_uapi")]
549#[cfg(target_arch = "mips")]
550#[path = "mips/elf_uapi.rs"]
551pub mod elf_uapi;
552#[cfg(feature = "errno")]
553#[cfg(target_arch = "mips")]
554#[path = "mips/errno.rs"]
555pub mod errno;
556#[cfg(feature = "general")]
557#[cfg(target_arch = "mips")]
558#[path = "mips/general.rs"]
559pub mod general;
560#[cfg(feature = "if_arp")]
561#[cfg(target_arch = "mips")]
562#[path = "mips/if_arp.rs"]
563pub mod if_arp;
564#[cfg(feature = "if_ether")]
565#[cfg(target_arch = "mips")]
566#[path = "mips/if_ether.rs"]
567pub mod if_ether;
568#[cfg(feature = "if_packet")]
569#[cfg(target_arch = "mips")]
570#[path = "mips/if_packet.rs"]
571pub mod if_packet;
572#[cfg(feature = "image")]
573#[cfg(target_arch = "mips")]
574#[path = "mips/image.rs"]
575pub mod image;
576#[cfg(feature = "io_uring")]
577#[cfg(target_arch = "mips")]
578#[path = "mips/io_uring.rs"]
579pub mod io_uring;
580#[cfg(feature = "ioctl")]
581#[cfg(target_arch = "mips")]
582#[path = "mips/ioctl.rs"]
583pub mod ioctl;
584#[cfg(feature = "landlock")]
585#[cfg(target_arch = "mips")]
586#[path = "mips/landlock.rs"]
587pub mod landlock;
588#[cfg(feature = "loop_device")]
589#[cfg(target_arch = "mips")]
590#[path = "mips/loop_device.rs"]
591pub mod loop_device;
592#[cfg(feature = "mempolicy")]
593#[cfg(target_arch = "mips")]
594#[path = "mips/mempolicy.rs"]
595pub mod mempolicy;
596#[cfg(feature = "net")]
597#[cfg(target_arch = "mips")]
598#[path = "mips/net.rs"]
599pub mod net;
600#[cfg(feature = "netlink")]
601#[cfg(target_arch = "mips")]
602#[path = "mips/netlink.rs"]
603pub mod netlink;
604#[cfg(feature = "prctl")]
605#[cfg(target_arch = "mips")]
606#[path = "mips/prctl.rs"]
607pub mod prctl;
608#[cfg(feature = "ptrace")]
609#[cfg(target_arch = "mips")]
610#[path = "mips/ptrace.rs"]
611pub mod ptrace;
612#[cfg(feature = "system")]
613#[cfg(target_arch = "mips")]
614#[path = "mips/system.rs"]
615pub mod system;
616#[cfg(feature = "xdp")]
617#[cfg(target_arch = "mips")]
618#[path = "mips/xdp.rs"]
619pub mod xdp;
620#[cfg(feature = "bootparam")]
621#[cfg(target_arch = "mips64")]
622#[path = "mips64/bootparam.rs"]
623pub mod bootparam;
624#[cfg(feature = "btrfs")]
625#[cfg(target_arch = "mips64")]
626#[path = "mips64/btrfs.rs"]
627pub mod btrfs;
628#[cfg(feature = "elf_uapi")]
629#[cfg(target_arch = "mips64")]
630#[path = "mips64/elf_uapi.rs"]
631pub mod elf_uapi;
632#[cfg(feature = "errno")]
633#[cfg(target_arch = "mips64")]
634#[path = "mips64/errno.rs"]
635pub mod errno;
636#[cfg(feature = "general")]
637#[cfg(target_arch = "mips64")]
638#[path = "mips64/general.rs"]
639pub mod general;
640#[cfg(feature = "if_arp")]
641#[cfg(target_arch = "mips64")]
642#[path = "mips64/if_arp.rs"]
643pub mod if_arp;
644#[cfg(feature = "if_ether")]
645#[cfg(target_arch = "mips64")]
646#[path = "mips64/if_ether.rs"]
647pub mod if_ether;
648#[cfg(feature = "if_packet")]
649#[cfg(target_arch = "mips64")]
650#[path = "mips64/if_packet.rs"]
651pub mod if_packet;
652#[cfg(feature = "image")]
653#[cfg(target_arch = "mips64")]
654#[path = "mips64/image.rs"]
655pub mod image;
656#[cfg(feature = "io_uring")]
657#[cfg(target_arch = "mips64")]
658#[path = "mips64/io_uring.rs"]
659pub mod io_uring;
660#[cfg(feature = "ioctl")]
661#[cfg(target_arch = "mips64")]
662#[path = "mips64/ioctl.rs"]
663pub mod ioctl;
664#[cfg(feature = "landlock")]
665#[cfg(target_arch = "mips64")]
666#[path = "mips64/landlock.rs"]
667pub mod landlock;
668#[cfg(feature = "loop_device")]
669#[cfg(target_arch = "mips64")]
670#[path = "mips64/loop_device.rs"]
671pub mod loop_device;
672#[cfg(feature = "mempolicy")]
673#[cfg(target_arch = "mips64")]
674#[path = "mips64/mempolicy.rs"]
675pub mod mempolicy;
676#[cfg(feature = "net")]
677#[cfg(target_arch = "mips64")]
678#[path = "mips64/net.rs"]
679pub mod net;
680#[cfg(feature = "netlink")]
681#[cfg(target_arch = "mips64")]
682#[path = "mips64/netlink.rs"]
683pub mod netlink;
684#[cfg(feature = "prctl")]
685#[cfg(target_arch = "mips64")]
686#[path = "mips64/prctl.rs"]
687pub mod prctl;
688#[cfg(feature = "ptrace")]
689#[cfg(target_arch = "mips64")]
690#[path = "mips64/ptrace.rs"]
691pub mod ptrace;
692#[cfg(feature = "system")]
693#[cfg(target_arch = "mips64")]
694#[path = "mips64/system.rs"]
695pub mod system;
696#[cfg(feature = "xdp")]
697#[cfg(target_arch = "mips64")]
698#[path = "mips64/xdp.rs"]
699pub mod xdp;
700#[cfg(feature = "bootparam")]
701#[cfg(target_arch = "mips32r6")]
702#[path = "mips32r6/bootparam.rs"]
703pub mod bootparam;
704#[cfg(feature = "btrfs")]
705#[cfg(target_arch = "mips32r6")]
706#[path = "mips32r6/btrfs.rs"]
707pub mod btrfs;
708#[cfg(feature = "elf_uapi")]
709#[cfg(target_arch = "mips32r6")]
710#[path = "mips32r6/elf_uapi.rs"]
711pub mod elf_uapi;
712#[cfg(feature = "errno")]
713#[cfg(target_arch = "mips32r6")]
714#[path = "mips32r6/errno.rs"]
715pub mod errno;
716#[cfg(feature = "general")]
717#[cfg(target_arch = "mips32r6")]
718#[path = "mips32r6/general.rs"]
719pub mod general;
720#[cfg(feature = "if_arp")]
721#[cfg(target_arch = "mips32r6")]
722#[path = "mips32r6/if_arp.rs"]
723pub mod if_arp;
724#[cfg(feature = "if_ether")]
725#[cfg(target_arch = "mips32r6")]
726#[path = "mips32r6/if_ether.rs"]
727pub mod if_ether;
728#[cfg(feature = "if_packet")]
729#[cfg(target_arch = "mips32r6")]
730#[path = "mips32r6/if_packet.rs"]
731pub mod if_packet;
732#[cfg(feature = "image")]
733#[cfg(target_arch = "mips32r6")]
734#[path = "mips32r6/image.rs"]
735pub mod image;
736#[cfg(feature = "io_uring")]
737#[cfg(target_arch = "mips32r6")]
738#[path = "mips32r6/io_uring.rs"]
739pub mod io_uring;
740#[cfg(feature = "ioctl")]
741#[cfg(target_arch = "mips32r6")]
742#[path = "mips32r6/ioctl.rs"]
743pub mod ioctl;
744#[cfg(feature = "landlock")]
745#[cfg(target_arch = "mips32r6")]
746#[path = "mips32r6/landlock.rs"]
747pub mod landlock;
748#[cfg(feature = "loop_device")]
749#[cfg(target_arch = "mips32r6")]
750#[path = "mips32r6/loop_device.rs"]
751pub mod loop_device;
752#[cfg(feature = "mempolicy")]
753#[cfg(target_arch = "mips32r6")]
754#[path = "mips32r6/mempolicy.rs"]
755pub mod mempolicy;
756#[cfg(feature = "net")]
757#[cfg(target_arch = "mips32r6")]
758#[path = "mips32r6/net.rs"]
759pub mod net;
760#[cfg(feature = "netlink")]
761#[cfg(target_arch = "mips32r6")]
762#[path = "mips32r6/netlink.rs"]
763pub mod netlink;
764#[cfg(feature = "prctl")]
765#[cfg(target_arch = "mips32r6")]
766#[path = "mips32r6/prctl.rs"]
767pub mod prctl;
768#[cfg(feature = "ptrace")]
769#[cfg(target_arch = "mips32r6")]
770#[path = "mips32r6/ptrace.rs"]
771pub mod ptrace;
772#[cfg(feature = "system")]
773#[cfg(target_arch = "mips32r6")]
774#[path = "mips32r6/system.rs"]
775pub mod system;
776#[cfg(feature = "xdp")]
777#[cfg(target_arch = "mips32r6")]
778#[path = "mips32r6/xdp.rs"]
779pub mod xdp;
780#[cfg(feature = "bootparam")]
781#[cfg(target_arch = "mips64r6")]
782#[path = "mips64r6/bootparam.rs"]
783pub mod bootparam;
784#[cfg(feature = "btrfs")]
785#[cfg(target_arch = "mips64r6")]
786#[path = "mips64r6/btrfs.rs"]
787pub mod btrfs;
788#[cfg(feature = "elf_uapi")]
789#[cfg(target_arch = "mips64r6")]
790#[path = "mips64r6/elf_uapi.rs"]
791pub mod elf_uapi;
792#[cfg(feature = "errno")]
793#[cfg(target_arch = "mips64r6")]
794#[path = "mips64r6/errno.rs"]
795pub mod errno;
796#[cfg(feature = "general")]
797#[cfg(target_arch = "mips64r6")]
798#[path = "mips64r6/general.rs"]
799pub mod general;
800#[cfg(feature = "if_arp")]
801#[cfg(target_arch = "mips64r6")]
802#[path = "mips64r6/if_arp.rs"]
803pub mod if_arp;
804#[cfg(feature = "if_ether")]
805#[cfg(target_arch = "mips64r6")]
806#[path = "mips64r6/if_ether.rs"]
807pub mod if_ether;
808#[cfg(feature = "if_packet")]
809#[cfg(target_arch = "mips64r6")]
810#[path = "mips64r6/if_packet.rs"]
811pub mod if_packet;
812#[cfg(feature = "image")]
813#[cfg(target_arch = "mips64r6")]
814#[path = "mips64r6/image.rs"]
815pub mod image;
816#[cfg(feature = "io_uring")]
817#[cfg(target_arch = "mips64r6")]
818#[path = "mips64r6/io_uring.rs"]
819pub mod io_uring;
820#[cfg(feature = "ioctl")]
821#[cfg(target_arch = "mips64r6")]
822#[path = "mips64r6/ioctl.rs"]
823pub mod ioctl;
824#[cfg(feature = "landlock")]
825#[cfg(target_arch = "mips64r6")]
826#[path = "mips64r6/landlock.rs"]
827pub mod landlock;
828#[cfg(feature = "loop_device")]
829#[cfg(target_arch = "mips64r6")]
830#[path = "mips64r6/loop_device.rs"]
831pub mod loop_device;
832#[cfg(feature = "mempolicy")]
833#[cfg(target_arch = "mips64r6")]
834#[path = "mips64r6/mempolicy.rs"]
835pub mod mempolicy;
836#[cfg(feature = "net")]
837#[cfg(target_arch = "mips64r6")]
838#[path = "mips64r6/net.rs"]
839pub mod net;
840#[cfg(feature = "netlink")]
841#[cfg(target_arch = "mips64r6")]
842#[path = "mips64r6/netlink.rs"]
843pub mod netlink;
844#[cfg(feature = "prctl")]
845#[cfg(target_arch = "mips64r6")]
846#[path = "mips64r6/prctl.rs"]
847pub mod prctl;
848#[cfg(feature = "ptrace")]
849#[cfg(target_arch = "mips64r6")]
850#[path = "mips64r6/ptrace.rs"]
851pub mod ptrace;
852#[cfg(feature = "system")]
853#[cfg(target_arch = "mips64r6")]
854#[path = "mips64r6/system.rs"]
855pub mod system;
856#[cfg(feature = "xdp")]
857#[cfg(target_arch = "mips64r6")]
858#[path = "mips64r6/xdp.rs"]
859pub mod xdp;
860#[cfg(feature = "bootparam")]
861#[cfg(target_arch = "powerpc")]
862#[path = "powerpc/bootparam.rs"]
863pub mod bootparam;
864#[cfg(feature = "btrfs")]
865#[cfg(target_arch = "powerpc")]
866#[path = "powerpc/btrfs.rs"]
867pub mod btrfs;
868#[cfg(feature = "elf_uapi")]
869#[cfg(target_arch = "powerpc")]
870#[path = "powerpc/elf_uapi.rs"]
871pub mod elf_uapi;
872#[cfg(feature = "errno")]
873#[cfg(target_arch = "powerpc")]
874#[path = "powerpc/errno.rs"]
875pub mod errno;
876#[cfg(feature = "general")]
877#[cfg(target_arch = "powerpc")]
878#[path = "powerpc/general.rs"]
879pub mod general;
880#[cfg(feature = "if_arp")]
881#[cfg(target_arch = "powerpc")]
882#[path = "powerpc/if_arp.rs"]
883pub mod if_arp;
884#[cfg(feature = "if_ether")]
885#[cfg(target_arch = "powerpc")]
886#[path = "powerpc/if_ether.rs"]
887pub mod if_ether;
888#[cfg(feature = "if_packet")]
889#[cfg(target_arch = "powerpc")]
890#[path = "powerpc/if_packet.rs"]
891pub mod if_packet;
892#[cfg(feature = "image")]
893#[cfg(target_arch = "powerpc")]
894#[path = "powerpc/image.rs"]
895pub mod image;
896#[cfg(feature = "io_uring")]
897#[cfg(target_arch = "powerpc")]
898#[path = "powerpc/io_uring.rs"]
899pub mod io_uring;
900#[cfg(feature = "ioctl")]
901#[cfg(target_arch = "powerpc")]
902#[path = "powerpc/ioctl.rs"]
903pub mod ioctl;
904#[cfg(feature = "landlock")]
905#[cfg(target_arch = "powerpc")]
906#[path = "powerpc/landlock.rs"]
907pub mod landlock;
908#[cfg(feature = "loop_device")]
909#[cfg(target_arch = "powerpc")]
910#[path = "powerpc/loop_device.rs"]
911pub mod loop_device;
912#[cfg(feature = "mempolicy")]
913#[cfg(target_arch = "powerpc")]
914#[path = "powerpc/mempolicy.rs"]
915pub mod mempolicy;
916#[cfg(feature = "net")]
917#[cfg(target_arch = "powerpc")]
918#[path = "powerpc/net.rs"]
919pub mod net;
920#[cfg(feature = "netlink")]
921#[cfg(target_arch = "powerpc")]
922#[path = "powerpc/netlink.rs"]
923pub mod netlink;
924#[cfg(feature = "prctl")]
925#[cfg(target_arch = "powerpc")]
926#[path = "powerpc/prctl.rs"]
927pub mod prctl;
928#[cfg(feature = "ptrace")]
929#[cfg(target_arch = "powerpc")]
930#[path = "powerpc/ptrace.rs"]
931pub mod ptrace;
932#[cfg(feature = "system")]
933#[cfg(target_arch = "powerpc")]
934#[path = "powerpc/system.rs"]
935pub mod system;
936#[cfg(feature = "xdp")]
937#[cfg(target_arch = "powerpc")]
938#[path = "powerpc/xdp.rs"]
939pub mod xdp;
940#[cfg(feature = "bootparam")]
941#[cfg(target_arch = "powerpc64")]
942#[path = "powerpc64/bootparam.rs"]
943pub mod bootparam;
944#[cfg(feature = "btrfs")]
945#[cfg(target_arch = "powerpc64")]
946#[path = "powerpc64/btrfs.rs"]
947pub mod btrfs;
948#[cfg(feature = "elf_uapi")]
949#[cfg(target_arch = "powerpc64")]
950#[path = "powerpc64/elf_uapi.rs"]
951pub mod elf_uapi;
952#[cfg(feature = "errno")]
953#[cfg(target_arch = "powerpc64")]
954#[path = "powerpc64/errno.rs"]
955pub mod errno;
956#[cfg(feature = "general")]
957#[cfg(target_arch = "powerpc64")]
958#[path = "powerpc64/general.rs"]
959pub mod general;
960#[cfg(feature = "if_arp")]
961#[cfg(target_arch = "powerpc64")]
962#[path = "powerpc64/if_arp.rs"]
963pub mod if_arp;
964#[cfg(feature = "if_ether")]
965#[cfg(target_arch = "powerpc64")]
966#[path = "powerpc64/if_ether.rs"]
967pub mod if_ether;
968#[cfg(feature = "if_packet")]
969#[cfg(target_arch = "powerpc64")]
970#[path = "powerpc64/if_packet.rs"]
971pub mod if_packet;
972#[cfg(feature = "image")]
973#[cfg(target_arch = "powerpc64")]
974#[path = "powerpc64/image.rs"]
975pub mod image;
976#[cfg(feature = "io_uring")]
977#[cfg(target_arch = "powerpc64")]
978#[path = "powerpc64/io_uring.rs"]
979pub mod io_uring;
980#[cfg(feature = "ioctl")]
981#[cfg(target_arch = "powerpc64")]
982#[path = "powerpc64/ioctl.rs"]
983pub mod ioctl;
984#[cfg(feature = "landlock")]
985#[cfg(target_arch = "powerpc64")]
986#[path = "powerpc64/landlock.rs"]
987pub mod landlock;
988#[cfg(feature = "loop_device")]
989#[cfg(target_arch = "powerpc64")]
990#[path = "powerpc64/loop_device.rs"]
991pub mod loop_device;
992#[cfg(feature = "mempolicy")]
993#[cfg(target_arch = "powerpc64")]
994#[path = "powerpc64/mempolicy.rs"]
995pub mod mempolicy;
996#[cfg(feature = "net")]
997#[cfg(target_arch = "powerpc64")]
998#[path = "powerpc64/net.rs"]
999pub mod net;
1000#[cfg(feature = "netlink")]
1001#[cfg(target_arch = "powerpc64")]
1002#[path = "powerpc64/netlink.rs"]
1003pub mod netlink;
1004#[cfg(feature = "prctl")]
1005#[cfg(target_arch = "powerpc64")]
1006#[path = "powerpc64/prctl.rs"]
1007pub mod prctl;
1008#[cfg(feature = "ptrace")]
1009#[cfg(target_arch = "powerpc64")]
1010#[path = "powerpc64/ptrace.rs"]
1011pub mod ptrace;
1012#[cfg(feature = "system")]
1013#[cfg(target_arch = "powerpc64")]
1014#[path = "powerpc64/system.rs"]
1015pub mod system;
1016#[cfg(feature = "xdp")]
1017#[cfg(target_arch = "powerpc64")]
1018#[path = "powerpc64/xdp.rs"]
1019pub mod xdp;
1020#[cfg(feature = "bootparam")]
1021#[cfg(target_arch = "riscv32")]
1022#[path = "riscv32/bootparam.rs"]
1023pub mod bootparam;
1024#[cfg(feature = "btrfs")]
1025#[cfg(target_arch = "riscv32")]
1026#[path = "riscv32/btrfs.rs"]
1027pub mod btrfs;
1028#[cfg(feature = "elf_uapi")]
1029#[cfg(target_arch = "riscv32")]
1030#[path = "riscv32/elf_uapi.rs"]
1031pub mod elf_uapi;
1032#[cfg(feature = "errno")]
1033#[cfg(target_arch = "riscv32")]
1034#[path = "riscv32/errno.rs"]
1035pub mod errno;
1036#[cfg(feature = "general")]
1037#[cfg(target_arch = "riscv32")]
1038#[path = "riscv32/general.rs"]
1039pub mod general;
1040#[cfg(feature = "if_arp")]
1041#[cfg(target_arch = "riscv32")]
1042#[path = "riscv32/if_arp.rs"]
1043pub mod if_arp;
1044#[cfg(feature = "if_ether")]
1045#[cfg(target_arch = "riscv32")]
1046#[path = "riscv32/if_ether.rs"]
1047pub mod if_ether;
1048#[cfg(feature = "if_packet")]
1049#[cfg(target_arch = "riscv32")]
1050#[path = "riscv32/if_packet.rs"]
1051pub mod if_packet;
1052#[cfg(feature = "image")]
1053#[cfg(target_arch = "riscv32")]
1054#[path = "riscv32/image.rs"]
1055pub mod image;
1056#[cfg(feature = "io_uring")]
1057#[cfg(target_arch = "riscv32")]
1058#[path = "riscv32/io_uring.rs"]
1059pub mod io_uring;
1060#[cfg(feature = "ioctl")]
1061#[cfg(target_arch = "riscv32")]
1062#[path = "riscv32/ioctl.rs"]
1063pub mod ioctl;
1064#[cfg(feature = "landlock")]
1065#[cfg(target_arch = "riscv32")]
1066#[path = "riscv32/landlock.rs"]
1067pub mod landlock;
1068#[cfg(feature = "loop_device")]
1069#[cfg(target_arch = "riscv32")]
1070#[path = "riscv32/loop_device.rs"]
1071pub mod loop_device;
1072#[cfg(feature = "mempolicy")]
1073#[cfg(target_arch = "riscv32")]
1074#[path = "riscv32/mempolicy.rs"]
1075pub mod mempolicy;
1076#[cfg(feature = "net")]
1077#[cfg(target_arch = "riscv32")]
1078#[path = "riscv32/net.rs"]
1079pub mod net;
1080#[cfg(feature = "netlink")]
1081#[cfg(target_arch = "riscv32")]
1082#[path = "riscv32/netlink.rs"]
1083pub mod netlink;
1084#[cfg(feature = "prctl")]
1085#[cfg(target_arch = "riscv32")]
1086#[path = "riscv32/prctl.rs"]
1087pub mod prctl;
1088#[cfg(feature = "ptrace")]
1089#[cfg(target_arch = "riscv32")]
1090#[path = "riscv32/ptrace.rs"]
1091pub mod ptrace;
1092#[cfg(feature = "system")]
1093#[cfg(target_arch = "riscv32")]
1094#[path = "riscv32/system.rs"]
1095pub mod system;
1096#[cfg(feature = "xdp")]
1097#[cfg(target_arch = "riscv32")]
1098#[path = "riscv32/xdp.rs"]
1099pub mod xdp;
1100#[cfg(feature = "bootparam")]
1101#[cfg(target_arch = "riscv64")]
1102#[path = "riscv64/bootparam.rs"]
1103pub mod bootparam;
1104#[cfg(feature = "btrfs")]
1105#[cfg(target_arch = "riscv64")]
1106#[path = "riscv64/btrfs.rs"]
1107pub mod btrfs;
1108#[cfg(feature = "elf_uapi")]
1109#[cfg(target_arch = "riscv64")]
1110#[path = "riscv64/elf_uapi.rs"]
1111pub mod elf_uapi;
1112#[cfg(feature = "errno")]
1113#[cfg(target_arch = "riscv64")]
1114#[path = "riscv64/errno.rs"]
1115pub mod errno;
1116#[cfg(feature = "general")]
1117#[cfg(target_arch = "riscv64")]
1118#[path = "riscv64/general.rs"]
1119pub mod general;
1120#[cfg(feature = "if_arp")]
1121#[cfg(target_arch = "riscv64")]
1122#[path = "riscv64/if_arp.rs"]
1123pub mod if_arp;
1124#[cfg(feature = "if_ether")]
1125#[cfg(target_arch = "riscv64")]
1126#[path = "riscv64/if_ether.rs"]
1127pub mod if_ether;
1128#[cfg(feature = "if_packet")]
1129#[cfg(target_arch = "riscv64")]
1130#[path = "riscv64/if_packet.rs"]
1131pub mod if_packet;
1132#[cfg(feature = "image")]
1133#[cfg(target_arch = "riscv64")]
1134#[path = "riscv64/image.rs"]
1135pub mod image;
1136#[cfg(feature = "io_uring")]
1137#[cfg(target_arch = "riscv64")]
1138#[path = "riscv64/io_uring.rs"]
1139pub mod io_uring;
1140#[cfg(feature = "ioctl")]
1141#[cfg(target_arch = "riscv64")]
1142#[path = "riscv64/ioctl.rs"]
1143pub mod ioctl;
1144#[cfg(feature = "landlock")]
1145#[cfg(target_arch = "riscv64")]
1146#[path = "riscv64/landlock.rs"]
1147pub mod landlock;
1148#[cfg(feature = "loop_device")]
1149#[cfg(target_arch = "riscv64")]
1150#[path = "riscv64/loop_device.rs"]
1151pub mod loop_device;
1152#[cfg(feature = "mempolicy")]
1153#[cfg(target_arch = "riscv64")]
1154#[path = "riscv64/mempolicy.rs"]
1155pub mod mempolicy;
1156#[cfg(feature = "net")]
1157#[cfg(target_arch = "riscv64")]
1158#[path = "riscv64/net.rs"]
1159pub mod net;
1160#[cfg(feature = "netlink")]
1161#[cfg(target_arch = "riscv64")]
1162#[path = "riscv64/netlink.rs"]
1163pub mod netlink;
1164#[cfg(feature = "prctl")]
1165#[cfg(target_arch = "riscv64")]
1166#[path = "riscv64/prctl.rs"]
1167pub mod prctl;
1168#[cfg(feature = "ptrace")]
1169#[cfg(target_arch = "riscv64")]
1170#[path = "riscv64/ptrace.rs"]
1171pub mod ptrace;
1172#[cfg(feature = "system")]
1173#[cfg(target_arch = "riscv64")]
1174#[path = "riscv64/system.rs"]
1175pub mod system;
1176#[cfg(feature = "xdp")]
1177#[cfg(target_arch = "riscv64")]
1178#[path = "riscv64/xdp.rs"]
1179pub mod xdp;
1180#[cfg(feature = "bootparam")]
1181#[cfg(target_arch = "s390x")]
1182#[path = "s390x/bootparam.rs"]
1183pub mod bootparam;
1184#[cfg(feature = "btrfs")]
1185#[cfg(target_arch = "s390x")]
1186#[path = "s390x/btrfs.rs"]
1187pub mod btrfs;
1188#[cfg(feature = "elf_uapi")]
1189#[cfg(target_arch = "s390x")]
1190#[path = "s390x/elf_uapi.rs"]
1191pub mod elf_uapi;
1192#[cfg(feature = "errno")]
1193#[cfg(target_arch = "s390x")]
1194#[path = "s390x/errno.rs"]
1195pub mod errno;
1196#[cfg(feature = "general")]
1197#[cfg(target_arch = "s390x")]
1198#[path = "s390x/general.rs"]
1199pub mod general;
1200#[cfg(feature = "if_arp")]
1201#[cfg(target_arch = "s390x")]
1202#[path = "s390x/if_arp.rs"]
1203pub mod if_arp;
1204#[cfg(feature = "if_ether")]
1205#[cfg(target_arch = "s390x")]
1206#[path = "s390x/if_ether.rs"]
1207pub mod if_ether;
1208#[cfg(feature = "if_packet")]
1209#[cfg(target_arch = "s390x")]
1210#[path = "s390x/if_packet.rs"]
1211pub mod if_packet;
1212#[cfg(feature = "image")]
1213#[cfg(target_arch = "s390x")]
1214#[path = "s390x/image.rs"]
1215pub mod image;
1216#[cfg(feature = "io_uring")]
1217#[cfg(target_arch = "s390x")]
1218#[path = "s390x/io_uring.rs"]
1219pub mod io_uring;
1220#[cfg(feature = "ioctl")]
1221#[cfg(target_arch = "s390x")]
1222#[path = "s390x/ioctl.rs"]
1223pub mod ioctl;
1224#[cfg(feature = "landlock")]
1225#[cfg(target_arch = "s390x")]
1226#[path = "s390x/landlock.rs"]
1227pub mod landlock;
1228#[cfg(feature = "loop_device")]
1229#[cfg(target_arch = "s390x")]
1230#[path = "s390x/loop_device.rs"]
1231pub mod loop_device;
1232#[cfg(feature = "mempolicy")]
1233#[cfg(target_arch = "s390x")]
1234#[path = "s390x/mempolicy.rs"]
1235pub mod mempolicy;
1236#[cfg(feature = "net")]
1237#[cfg(target_arch = "s390x")]
1238#[path = "s390x/net.rs"]
1239pub mod net;
1240#[cfg(feature = "netlink")]
1241#[cfg(target_arch = "s390x")]
1242#[path = "s390x/netlink.rs"]
1243pub mod netlink;
1244#[cfg(feature = "prctl")]
1245#[cfg(target_arch = "s390x")]
1246#[path = "s390x/prctl.rs"]
1247pub mod prctl;
1248#[cfg(feature = "ptrace")]
1249#[cfg(target_arch = "s390x")]
1250#[path = "s390x/ptrace.rs"]
1251pub mod ptrace;
1252#[cfg(feature = "system")]
1253#[cfg(target_arch = "s390x")]
1254#[path = "s390x/system.rs"]
1255pub mod system;
1256#[cfg(feature = "xdp")]
1257#[cfg(target_arch = "s390x")]
1258#[path = "s390x/xdp.rs"]
1259pub mod xdp;
1260#[cfg(feature = "bootparam")]
1261#[cfg(target_arch = "sparc")]
1262#[path = "sparc/bootparam.rs"]
1263pub mod bootparam;
1264#[cfg(feature = "btrfs")]
1265#[cfg(target_arch = "sparc")]
1266#[path = "sparc/btrfs.rs"]
1267pub mod btrfs;
1268#[cfg(feature = "elf_uapi")]
1269#[cfg(target_arch = "sparc")]
1270#[path = "sparc/elf_uapi.rs"]
1271pub mod elf_uapi;
1272#[cfg(feature = "errno")]
1273#[cfg(target_arch = "sparc")]
1274#[path = "sparc/errno.rs"]
1275pub mod errno;
1276#[cfg(feature = "general")]
1277#[cfg(target_arch = "sparc")]
1278#[path = "sparc/general.rs"]
1279pub mod general;
1280#[cfg(feature = "if_arp")]
1281#[cfg(target_arch = "sparc")]
1282#[path = "sparc/if_arp.rs"]
1283pub mod if_arp;
1284#[cfg(feature = "if_ether")]
1285#[cfg(target_arch = "sparc")]
1286#[path = "sparc/if_ether.rs"]
1287pub mod if_ether;
1288#[cfg(feature = "if_packet")]
1289#[cfg(target_arch = "sparc")]
1290#[path = "sparc/if_packet.rs"]
1291pub mod if_packet;
1292#[cfg(feature = "image")]
1293#[cfg(target_arch = "sparc")]
1294#[path = "sparc/image.rs"]
1295pub mod image;
1296#[cfg(feature = "io_uring")]
1297#[cfg(target_arch = "sparc")]
1298#[path = "sparc/io_uring.rs"]
1299pub mod io_uring;
1300#[cfg(feature = "ioctl")]
1301#[cfg(target_arch = "sparc")]
1302#[path = "sparc/ioctl.rs"]
1303pub mod ioctl;
1304#[cfg(feature = "landlock")]
1305#[cfg(target_arch = "sparc")]
1306#[path = "sparc/landlock.rs"]
1307pub mod landlock;
1308#[cfg(feature = "loop_device")]
1309#[cfg(target_arch = "sparc")]
1310#[path = "sparc/loop_device.rs"]
1311pub mod loop_device;
1312#[cfg(feature = "mempolicy")]
1313#[cfg(target_arch = "sparc")]
1314#[path = "sparc/mempolicy.rs"]
1315pub mod mempolicy;
1316#[cfg(feature = "net")]
1317#[cfg(target_arch = "sparc")]
1318#[path = "sparc/net.rs"]
1319pub mod net;
1320#[cfg(feature = "netlink")]
1321#[cfg(target_arch = "sparc")]
1322#[path = "sparc/netlink.rs"]
1323pub mod netlink;
1324#[cfg(feature = "prctl")]
1325#[cfg(target_arch = "sparc")]
1326#[path = "sparc/prctl.rs"]
1327pub mod prctl;
1328#[cfg(feature = "ptrace")]
1329#[cfg(target_arch = "sparc")]
1330#[path = "sparc/ptrace.rs"]
1331pub mod ptrace;
1332#[cfg(feature = "system")]
1333#[cfg(target_arch = "sparc")]
1334#[path = "sparc/system.rs"]
1335pub mod system;
1336#[cfg(feature = "xdp")]
1337#[cfg(target_arch = "sparc")]
1338#[path = "sparc/xdp.rs"]
1339pub mod xdp;
1340#[cfg(feature = "bootparam")]
1341#[cfg(target_arch = "sparc64")]
1342#[path = "sparc64/bootparam.rs"]
1343pub mod bootparam;
1344#[cfg(feature = "btrfs")]
1345#[cfg(target_arch = "sparc64")]
1346#[path = "sparc64/btrfs.rs"]
1347pub mod btrfs;
1348#[cfg(feature = "elf_uapi")]
1349#[cfg(target_arch = "sparc64")]
1350#[path = "sparc64/elf_uapi.rs"]
1351pub mod elf_uapi;
1352#[cfg(feature = "errno")]
1353#[cfg(target_arch = "sparc64")]
1354#[path = "sparc64/errno.rs"]
1355pub mod errno;
1356#[cfg(feature = "general")]
1357#[cfg(target_arch = "sparc64")]
1358#[path = "sparc64/general.rs"]
1359pub mod general;
1360#[cfg(feature = "if_arp")]
1361#[cfg(target_arch = "sparc64")]
1362#[path = "sparc64/if_arp.rs"]
1363pub mod if_arp;
1364#[cfg(feature = "if_ether")]
1365#[cfg(target_arch = "sparc64")]
1366#[path = "sparc64/if_ether.rs"]
1367pub mod if_ether;
1368#[cfg(feature = "if_packet")]
1369#[cfg(target_arch = "sparc64")]
1370#[path = "sparc64/if_packet.rs"]
1371pub mod if_packet;
1372#[cfg(feature = "image")]
1373#[cfg(target_arch = "sparc64")]
1374#[path = "sparc64/image.rs"]
1375pub mod image;
1376#[cfg(feature = "io_uring")]
1377#[cfg(target_arch = "sparc64")]
1378#[path = "sparc64/io_uring.rs"]
1379pub mod io_uring;
1380#[cfg(feature = "ioctl")]
1381#[cfg(target_arch = "sparc64")]
1382#[path = "sparc64/ioctl.rs"]
1383pub mod ioctl;
1384#[cfg(feature = "landlock")]
1385#[cfg(target_arch = "sparc64")]
1386#[path = "sparc64/landlock.rs"]
1387pub mod landlock;
1388#[cfg(feature = "loop_device")]
1389#[cfg(target_arch = "sparc64")]
1390#[path = "sparc64/loop_device.rs"]
1391pub mod loop_device;
1392#[cfg(feature = "mempolicy")]
1393#[cfg(target_arch = "sparc64")]
1394#[path = "sparc64/mempolicy.rs"]
1395pub mod mempolicy;
1396#[cfg(feature = "net")]
1397#[cfg(target_arch = "sparc64")]
1398#[path = "sparc64/net.rs"]
1399pub mod net;
1400#[cfg(feature = "netlink")]
1401#[cfg(target_arch = "sparc64")]
1402#[path = "sparc64/netlink.rs"]
1403pub mod netlink;
1404#[cfg(feature = "prctl")]
1405#[cfg(target_arch = "sparc64")]
1406#[path = "sparc64/prctl.rs"]
1407pub mod prctl;
1408#[cfg(feature = "ptrace")]
1409#[cfg(target_arch = "sparc64")]
1410#[path = "sparc64/ptrace.rs"]
1411pub mod ptrace;
1412#[cfg(feature = "system")]
1413#[cfg(target_arch = "sparc64")]
1414#[path = "sparc64/system.rs"]
1415pub mod system;
1416#[cfg(feature = "xdp")]
1417#[cfg(target_arch = "sparc64")]
1418#[path = "sparc64/xdp.rs"]
1419pub mod xdp;
1420#[cfg(feature = "bootparam")]
1421#[cfg(target_arch = "x86")]
1422#[path = "x86/bootparam.rs"]
1423pub mod bootparam;
1424#[cfg(feature = "btrfs")]
1425#[cfg(target_arch = "x86")]
1426#[path = "x86/btrfs.rs"]
1427pub mod btrfs;
1428#[cfg(feature = "elf_uapi")]
1429#[cfg(target_arch = "x86")]
1430#[path = "x86/elf_uapi.rs"]
1431pub mod elf_uapi;
1432#[cfg(feature = "errno")]
1433#[cfg(target_arch = "x86")]
1434#[path = "x86/errno.rs"]
1435pub mod errno;
1436#[cfg(feature = "general")]
1437#[cfg(target_arch = "x86")]
1438#[path = "x86/general.rs"]
1439pub mod general;
1440#[cfg(feature = "if_arp")]
1441#[cfg(target_arch = "x86")]
1442#[path = "x86/if_arp.rs"]
1443pub mod if_arp;
1444#[cfg(feature = "if_ether")]
1445#[cfg(target_arch = "x86")]
1446#[path = "x86/if_ether.rs"]
1447pub mod if_ether;
1448#[cfg(feature = "if_packet")]
1449#[cfg(target_arch = "x86")]
1450#[path = "x86/if_packet.rs"]
1451pub mod if_packet;
1452#[cfg(feature = "image")]
1453#[cfg(target_arch = "x86")]
1454#[path = "x86/image.rs"]
1455pub mod image;
1456#[cfg(feature = "io_uring")]
1457#[cfg(target_arch = "x86")]
1458#[path = "x86/io_uring.rs"]
1459pub mod io_uring;
1460#[cfg(feature = "ioctl")]
1461#[cfg(target_arch = "x86")]
1462#[path = "x86/ioctl.rs"]
1463pub mod ioctl;
1464#[cfg(feature = "landlock")]
1465#[cfg(target_arch = "x86")]
1466#[path = "x86/landlock.rs"]
1467pub mod landlock;
1468#[cfg(feature = "loop_device")]
1469#[cfg(target_arch = "x86")]
1470#[path = "x86/loop_device.rs"]
1471pub mod loop_device;
1472#[cfg(feature = "mempolicy")]
1473#[cfg(target_arch = "x86")]
1474#[path = "x86/mempolicy.rs"]
1475pub mod mempolicy;
1476#[cfg(feature = "net")]
1477#[cfg(target_arch = "x86")]
1478#[path = "x86/net.rs"]
1479pub mod net;
1480#[cfg(feature = "netlink")]
1481#[cfg(target_arch = "x86")]
1482#[path = "x86/netlink.rs"]
1483pub mod netlink;
1484#[cfg(feature = "prctl")]
1485#[cfg(target_arch = "x86")]
1486#[path = "x86/prctl.rs"]
1487pub mod prctl;
1488#[cfg(feature = "ptrace")]
1489#[cfg(target_arch = "x86")]
1490#[path = "x86/ptrace.rs"]
1491pub mod ptrace;
1492#[cfg(feature = "system")]
1493#[cfg(target_arch = "x86")]
1494#[path = "x86/system.rs"]
1495pub mod system;
1496#[cfg(feature = "xdp")]
1497#[cfg(target_arch = "x86")]
1498#[path = "x86/xdp.rs"]
1499pub mod xdp;
1500#[cfg(feature = "bootparam")]
1501#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
1502#[path = "x86_64/bootparam.rs"]
1503pub mod bootparam;
1504#[cfg(feature = "btrfs")]
1505#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
1506#[path = "x86_64/btrfs.rs"]
1507pub mod btrfs;
1508#[cfg(feature = "elf_uapi")]
1509#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
1510#[path = "x86_64/elf_uapi.rs"]
1511pub mod elf_uapi;
1512#[cfg(feature = "errno")]
1513#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
1514#[path = "x86_64/errno.rs"]
1515pub mod errno;
1516#[cfg(feature = "general")]
1517#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
1518#[path = "x86_64/general.rs"]
1519pub mod general;
1520#[cfg(feature = "if_arp")]
1521#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
1522#[path = "x86_64/if_arp.rs"]
1523pub mod if_arp;
1524#[cfg(feature = "if_ether")]
1525#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
1526#[path = "x86_64/if_ether.rs"]
1527pub mod if_ether;
1528#[cfg(feature = "if_packet")]
1529#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
1530#[path = "x86_64/if_packet.rs"]
1531pub mod if_packet;
1532#[cfg(feature = "image")]
1533#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
1534#[path = "x86_64/image.rs"]
1535pub mod image;
1536#[cfg(feature = "io_uring")]
1537#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
1538#[path = "x86_64/io_uring.rs"]
1539pub mod io_uring;
1540#[cfg(feature = "ioctl")]
1541#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
1542#[path = "x86_64/ioctl.rs"]
1543pub mod ioctl;
1544#[cfg(feature = "landlock")]
1545#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
1546#[path = "x86_64/landlock.rs"]
1547pub mod landlock;
1548#[cfg(feature = "loop_device")]
1549#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
1550#[path = "x86_64/loop_device.rs"]
1551pub mod loop_device;
1552#[cfg(feature = "mempolicy")]
1553#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
1554#[path = "x86_64/mempolicy.rs"]
1555pub mod mempolicy;
1556#[cfg(feature = "net")]
1557#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
1558#[path = "x86_64/net.rs"]
1559pub mod net;
1560#[cfg(feature = "netlink")]
1561#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
1562#[path = "x86_64/netlink.rs"]
1563pub mod netlink;
1564#[cfg(feature = "prctl")]
1565#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
1566#[path = "x86_64/prctl.rs"]
1567pub mod prctl;
1568#[cfg(feature = "ptrace")]
1569#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
1570#[path = "x86_64/ptrace.rs"]
1571pub mod ptrace;
1572#[cfg(feature = "system")]
1573#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
1574#[path = "x86_64/system.rs"]
1575pub mod system;
1576#[cfg(feature = "xdp")]
1577#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
1578#[path = "x86_64/xdp.rs"]
1579pub mod xdp;
1580#[cfg(feature = "bootparam")]
1581#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
1582#[path = "x32/bootparam.rs"]
1583pub mod bootparam;
1584#[cfg(feature = "btrfs")]
1585#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
1586#[path = "x32/btrfs.rs"]
1587pub mod btrfs;
1588#[cfg(feature = "elf_uapi")]
1589#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
1590#[path = "x32/elf_uapi.rs"]
1591pub mod elf_uapi;
1592#[cfg(feature = "errno")]
1593#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
1594#[path = "x32/errno.rs"]
1595pub mod errno;
1596#[cfg(feature = "general")]
1597#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
1598#[path = "x32/general.rs"]
1599pub mod general;
1600#[cfg(feature = "if_arp")]
1601#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
1602#[path = "x32/if_arp.rs"]
1603pub mod if_arp;
1604#[cfg(feature = "if_ether")]
1605#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
1606#[path = "x32/if_ether.rs"]
1607pub mod if_ether;
1608#[cfg(feature = "if_packet")]
1609#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
1610#[path = "x32/if_packet.rs"]
1611pub mod if_packet;
1612#[cfg(feature = "image")]
1613#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
1614#[path = "x32/image.rs"]
1615pub mod image;
1616#[cfg(feature = "io_uring")]
1617#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
1618#[path = "x32/io_uring.rs"]
1619pub mod io_uring;
1620#[cfg(feature = "ioctl")]
1621#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
1622#[path = "x32/ioctl.rs"]
1623pub mod ioctl;
1624#[cfg(feature = "landlock")]
1625#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
1626#[path = "x32/landlock.rs"]
1627pub mod landlock;
1628#[cfg(feature = "loop_device")]
1629#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
1630#[path = "x32/loop_device.rs"]
1631pub mod loop_device;
1632#[cfg(feature = "mempolicy")]
1633#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
1634#[path = "x32/mempolicy.rs"]
1635pub mod mempolicy;
1636#[cfg(feature = "net")]
1637#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
1638#[path = "x32/net.rs"]
1639pub mod net;
1640#[cfg(feature = "netlink")]
1641#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
1642#[path = "x32/netlink.rs"]
1643pub mod netlink;
1644#[cfg(feature = "prctl")]
1645#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
1646#[path = "x32/prctl.rs"]
1647pub mod prctl;
1648#[cfg(feature = "ptrace")]
1649#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
1650#[path = "x32/ptrace.rs"]
1651pub mod ptrace;
1652#[cfg(feature = "system")]
1653#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
1654#[path = "x32/system.rs"]
1655pub mod system;
1656#[cfg(feature = "xdp")]
1657#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
1658#[path = "x32/xdp.rs"]
1659pub mod xdp;