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
4#[cfg(feature = "std")]
5pub use std::os::raw as ctypes;
6
7#[cfg(all(not(feature = "std"), feature = "no_std"))]
8pub mod ctypes {
9    // The signedness of `char` is platform-specific, however a consequence
10    // of it being platform-specific is that any code which depends on the
11    // signedness of `char` is already non-portable. So we can just use `u8`
12    // here and no portable code will notice.
13    pub type c_char = u8;
14
15    // The following assumes that Linux is always either ILP32 or LP64,
16    // and char is always 8-bit.
17    //
18    // In theory, `c_long` and `c_ulong` could be `isize` and `usize`
19    // respectively, however in practice Linux doesn't use them in that way
20    // consistently. So stick with the convention followed by `libc` and
21    // others and use the fixed-width types.
22    pub type c_schar = i8;
23    pub type c_uchar = u8;
24    pub type c_short = i16;
25    pub type c_ushort = u16;
26    pub type c_int = i32;
27    pub type c_uint = u32;
28    #[cfg(target_pointer_width = "32")]
29    pub type c_long = i32;
30    #[cfg(target_pointer_width = "32")]
31    pub type c_ulong = u32;
32    #[cfg(target_pointer_width = "64")]
33    pub type c_long = i64;
34    #[cfg(target_pointer_width = "64")]
35    pub type c_ulong = u64;
36    pub type c_longlong = i64;
37    pub type c_ulonglong = u64;
38    pub type c_float = f32;
39    pub type c_double = f64;
40
41    pub use core::ffi::c_void;
42}
43
44// Confirm that our type definitions above match the actual type definitions.
45#[cfg(test)]
46mod assertions {
47    use super::ctypes;
48    static_assertions::assert_eq_size!(ctypes::c_char, libc::c_char);
49    static_assertions::assert_type_eq_all!(ctypes::c_schar, libc::c_schar);
50    static_assertions::assert_type_eq_all!(ctypes::c_uchar, libc::c_uchar);
51    static_assertions::assert_type_eq_all!(ctypes::c_short, libc::c_short);
52    static_assertions::assert_type_eq_all!(ctypes::c_ushort, libc::c_ushort);
53    static_assertions::assert_type_eq_all!(ctypes::c_int, libc::c_int);
54    static_assertions::assert_type_eq_all!(ctypes::c_uint, libc::c_uint);
55    static_assertions::assert_type_eq_all!(ctypes::c_long, libc::c_long);
56    static_assertions::assert_type_eq_all!(ctypes::c_ulong, libc::c_ulong);
57    static_assertions::assert_type_eq_all!(ctypes::c_longlong, libc::c_longlong);
58    static_assertions::assert_type_eq_all!(ctypes::c_ulonglong, libc::c_ulonglong);
59    static_assertions::assert_type_eq_all!(ctypes::c_float, libc::c_float);
60    static_assertions::assert_type_eq_all!(ctypes::c_double, libc::c_double);
61}
62
63// We don't enable `derive_eq` in bindgen because adding `PartialEq`/`Eq` to
64// *all* structs noticeably increases compile times. But we can add a few
65// manual impls where they're especially useful.
66#[cfg(feature = "general")]
67impl PartialEq for general::__kernel_timespec {
68    fn eq(&self, other: &Self) -> bool {
69        ({
70            let Self { tv_sec, tv_nsec } = self;
71            (tv_sec, tv_nsec)
72        }) == ({
73            let Self { tv_sec, tv_nsec } = other;
74            (tv_sec, tv_nsec)
75        })
76    }
77}
78#[cfg(feature = "general")]
79impl Eq for general::__kernel_timespec {}
80
81#[cfg(feature = "net")]
82pub mod cmsg_macros {
83    use crate::ctypes::{c_long, c_uchar, c_uint};
84    use crate::net::{cmsghdr, msghdr};
85    use core::mem::size_of;
86    use core::ptr;
87
88    pub const unsafe fn CMSG_ALIGN(len: c_uint) -> c_uint {
89        let c_long_size = size_of::<c_long>() as c_uint;
90        (len + c_long_size - 1) & !(c_long_size - 1)
91    }
92
93    pub const unsafe fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut c_uchar {
94        (cmsg as *mut c_uchar).add(size_of::<cmsghdr>())
95    }
96
97    pub const unsafe fn CMSG_SPACE(len: c_uint) -> c_uint {
98        size_of::<cmsghdr>() as c_uint + CMSG_ALIGN(len)
99    }
100
101    pub const unsafe fn CMSG_LEN(len: c_uint) -> c_uint {
102        size_of::<cmsghdr>() as c_uint + len
103    }
104
105    pub const unsafe fn CMSG_FIRSTHDR(mhdr: *const msghdr) -> *mut cmsghdr {
106        if (*mhdr).msg_controllen < size_of::<cmsghdr>() as _ {
107            return ptr::null_mut();
108        }
109
110        (*mhdr).msg_control as *mut cmsghdr
111    }
112
113    pub unsafe fn CMSG_NXTHDR(mhdr: *const msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr {
114        // We convert from raw pointers to usize here, which may not be sound in a
115        // future version of Rust. Once the provenance rules are set in stone,
116        // it will be a good idea to give this function a once-over.
117
118        let cmsg_len = (*cmsg).cmsg_len;
119        let next_cmsg = (cmsg as *mut u8).add(CMSG_ALIGN(cmsg_len as _) as usize) as *mut cmsghdr;
120        let max = ((*mhdr).msg_control as usize) + ((*mhdr).msg_controllen as usize);
121
122        if cmsg_len < size_of::<cmsghdr>() as _ {
123            return ptr::null_mut();
124        }
125
126        if next_cmsg.add(1) as usize > max
127            || next_cmsg as usize + CMSG_ALIGN((*next_cmsg).cmsg_len as _) as usize > max
128        {
129            return ptr::null_mut();
130        }
131
132        next_cmsg
133    }
134}
135
136#[cfg(feature = "general")]
137pub mod select_macros {
138    use crate::ctypes::c_int;
139    use crate::general::__kernel_fd_set;
140    use core::mem::size_of;
141
142    pub unsafe fn FD_CLR(fd: c_int, set: *mut __kernel_fd_set) {
143        let bytes = set as *mut u8;
144        if fd >= 0 {
145            *bytes.add((fd / 8) as usize) &= !(1 << (fd % 8));
146        }
147    }
148
149    pub unsafe fn FD_SET(fd: c_int, set: *mut __kernel_fd_set) {
150        let bytes = set as *mut u8;
151        if fd >= 0 {
152            *bytes.add((fd / 8) as usize) |= 1 << (fd % 8);
153        }
154    }
155
156    pub unsafe fn FD_ISSET(fd: c_int, set: *const __kernel_fd_set) -> bool {
157        let bytes = set as *const u8;
158        if fd >= 0 {
159            *bytes.add((fd / 8) as usize) & (1 << (fd % 8)) != 0
160        } else {
161            false
162        }
163    }
164
165    pub unsafe fn FD_ZERO(set: *mut __kernel_fd_set) {
166        let bytes = set as *mut u8;
167        core::ptr::write_bytes(bytes, 0, size_of::<__kernel_fd_set>());
168    }
169}
170
171#[cfg(feature = "general")]
172pub mod signal_macros {
173    pub const SIG_DFL: super::general::__kernel_sighandler_t = None;
174
175    /// Rust doesn't currently permit us to use `transmute` to convert the
176    /// `SIG_IGN` value into a function pointer in a `const` initializer, so
177    /// we make it a function instead.
178    ///
179    #[inline]
180    pub const fn sig_ign() -> super::general::__kernel_sighandler_t {
181        // Safety: This creates an invalid pointer, but the pointer type
182        // includes `unsafe`, which covers the safety of calling it.
183        Some(unsafe {
184            core::mem::transmute::<usize, unsafe extern "C" fn(crate::ctypes::c_int)>(1)
185        })
186    }
187}
188
189#[cfg(feature = "elf")]
190pub mod elf;
191
192// The rest of this file is auto-generated!
193#[cfg(feature = "bootparam")]
194#[cfg(target_arch = "arm")]
195#[path = "arm/bootparam.rs"]
196pub mod bootparam;
197#[cfg(feature = "errno")]
198#[cfg(target_arch = "arm")]
199#[path = "arm/errno.rs"]
200pub mod errno;
201#[cfg(feature = "general")]
202#[cfg(target_arch = "arm")]
203#[path = "arm/general.rs"]
204pub mod general;
205#[cfg(feature = "if_arp")]
206#[cfg(target_arch = "arm")]
207#[path = "arm/if_arp.rs"]
208pub mod if_arp;
209#[cfg(feature = "if_ether")]
210#[cfg(target_arch = "arm")]
211#[path = "arm/if_ether.rs"]
212pub mod if_ether;
213#[cfg(feature = "if_packet")]
214#[cfg(target_arch = "arm")]
215#[path = "arm/if_packet.rs"]
216pub mod if_packet;
217#[cfg(feature = "io_uring")]
218#[cfg(target_arch = "arm")]
219#[path = "arm/io_uring.rs"]
220pub mod io_uring;
221#[cfg(feature = "ioctl")]
222#[cfg(target_arch = "arm")]
223#[path = "arm/ioctl.rs"]
224pub mod ioctl;
225#[cfg(feature = "loop_device")]
226#[cfg(target_arch = "arm")]
227#[path = "arm/loop_device.rs"]
228pub mod loop_device;
229#[cfg(feature = "mempolicy")]
230#[cfg(target_arch = "arm")]
231#[path = "arm/mempolicy.rs"]
232pub mod mempolicy;
233#[cfg(feature = "net")]
234#[cfg(target_arch = "arm")]
235#[path = "arm/net.rs"]
236pub mod net;
237#[cfg(feature = "netlink")]
238#[cfg(target_arch = "arm")]
239#[path = "arm/netlink.rs"]
240pub mod netlink;
241#[cfg(feature = "prctl")]
242#[cfg(target_arch = "arm")]
243#[path = "arm/prctl.rs"]
244pub mod prctl;
245#[cfg(feature = "system")]
246#[cfg(target_arch = "arm")]
247#[path = "arm/system.rs"]
248pub mod system;
249#[cfg(feature = "xdp")]
250#[cfg(target_arch = "arm")]
251#[path = "arm/xdp.rs"]
252pub mod xdp;
253#[cfg(feature = "bootparam")]
254#[cfg(target_arch = "aarch64")]
255#[path = "aarch64/bootparam.rs"]
256pub mod bootparam;
257#[cfg(feature = "errno")]
258#[cfg(target_arch = "aarch64")]
259#[path = "aarch64/errno.rs"]
260pub mod errno;
261#[cfg(feature = "general")]
262#[cfg(target_arch = "aarch64")]
263#[path = "aarch64/general.rs"]
264pub mod general;
265#[cfg(feature = "if_arp")]
266#[cfg(target_arch = "aarch64")]
267#[path = "aarch64/if_arp.rs"]
268pub mod if_arp;
269#[cfg(feature = "if_ether")]
270#[cfg(target_arch = "aarch64")]
271#[path = "aarch64/if_ether.rs"]
272pub mod if_ether;
273#[cfg(feature = "if_packet")]
274#[cfg(target_arch = "aarch64")]
275#[path = "aarch64/if_packet.rs"]
276pub mod if_packet;
277#[cfg(feature = "io_uring")]
278#[cfg(target_arch = "aarch64")]
279#[path = "aarch64/io_uring.rs"]
280pub mod io_uring;
281#[cfg(feature = "ioctl")]
282#[cfg(target_arch = "aarch64")]
283#[path = "aarch64/ioctl.rs"]
284pub mod ioctl;
285#[cfg(feature = "loop_device")]
286#[cfg(target_arch = "aarch64")]
287#[path = "aarch64/loop_device.rs"]
288pub mod loop_device;
289#[cfg(feature = "mempolicy")]
290#[cfg(target_arch = "aarch64")]
291#[path = "aarch64/mempolicy.rs"]
292pub mod mempolicy;
293#[cfg(feature = "net")]
294#[cfg(target_arch = "aarch64")]
295#[path = "aarch64/net.rs"]
296pub mod net;
297#[cfg(feature = "netlink")]
298#[cfg(target_arch = "aarch64")]
299#[path = "aarch64/netlink.rs"]
300pub mod netlink;
301#[cfg(feature = "prctl")]
302#[cfg(target_arch = "aarch64")]
303#[path = "aarch64/prctl.rs"]
304pub mod prctl;
305#[cfg(feature = "system")]
306#[cfg(target_arch = "aarch64")]
307#[path = "aarch64/system.rs"]
308pub mod system;
309#[cfg(feature = "xdp")]
310#[cfg(target_arch = "aarch64")]
311#[path = "aarch64/xdp.rs"]
312pub mod xdp;
313#[cfg(feature = "bootparam")]
314#[cfg(target_arch = "csky")]
315#[path = "csky/bootparam.rs"]
316pub mod bootparam;
317#[cfg(feature = "errno")]
318#[cfg(target_arch = "csky")]
319#[path = "csky/errno.rs"]
320pub mod errno;
321#[cfg(feature = "general")]
322#[cfg(target_arch = "csky")]
323#[path = "csky/general.rs"]
324pub mod general;
325#[cfg(feature = "if_arp")]
326#[cfg(target_arch = "csky")]
327#[path = "csky/if_arp.rs"]
328pub mod if_arp;
329#[cfg(feature = "if_ether")]
330#[cfg(target_arch = "csky")]
331#[path = "csky/if_ether.rs"]
332pub mod if_ether;
333#[cfg(feature = "if_packet")]
334#[cfg(target_arch = "csky")]
335#[path = "csky/if_packet.rs"]
336pub mod if_packet;
337#[cfg(feature = "io_uring")]
338#[cfg(target_arch = "csky")]
339#[path = "csky/io_uring.rs"]
340pub mod io_uring;
341#[cfg(feature = "ioctl")]
342#[cfg(target_arch = "csky")]
343#[path = "csky/ioctl.rs"]
344pub mod ioctl;
345#[cfg(feature = "loop_device")]
346#[cfg(target_arch = "csky")]
347#[path = "csky/loop_device.rs"]
348pub mod loop_device;
349#[cfg(feature = "mempolicy")]
350#[cfg(target_arch = "csky")]
351#[path = "csky/mempolicy.rs"]
352pub mod mempolicy;
353#[cfg(feature = "net")]
354#[cfg(target_arch = "csky")]
355#[path = "csky/net.rs"]
356pub mod net;
357#[cfg(feature = "netlink")]
358#[cfg(target_arch = "csky")]
359#[path = "csky/netlink.rs"]
360pub mod netlink;
361#[cfg(feature = "prctl")]
362#[cfg(target_arch = "csky")]
363#[path = "csky/prctl.rs"]
364pub mod prctl;
365#[cfg(feature = "system")]
366#[cfg(target_arch = "csky")]
367#[path = "csky/system.rs"]
368pub mod system;
369#[cfg(feature = "xdp")]
370#[cfg(target_arch = "csky")]
371#[path = "csky/xdp.rs"]
372pub mod xdp;
373#[cfg(feature = "bootparam")]
374#[cfg(target_arch = "loongarch64")]
375#[path = "loongarch64/bootparam.rs"]
376pub mod bootparam;
377#[cfg(feature = "errno")]
378#[cfg(target_arch = "loongarch64")]
379#[path = "loongarch64/errno.rs"]
380pub mod errno;
381#[cfg(feature = "general")]
382#[cfg(target_arch = "loongarch64")]
383#[path = "loongarch64/general.rs"]
384pub mod general;
385#[cfg(feature = "if_arp")]
386#[cfg(target_arch = "loongarch64")]
387#[path = "loongarch64/if_arp.rs"]
388pub mod if_arp;
389#[cfg(feature = "if_ether")]
390#[cfg(target_arch = "loongarch64")]
391#[path = "loongarch64/if_ether.rs"]
392pub mod if_ether;
393#[cfg(feature = "if_packet")]
394#[cfg(target_arch = "loongarch64")]
395#[path = "loongarch64/if_packet.rs"]
396pub mod if_packet;
397#[cfg(feature = "io_uring")]
398#[cfg(target_arch = "loongarch64")]
399#[path = "loongarch64/io_uring.rs"]
400pub mod io_uring;
401#[cfg(feature = "ioctl")]
402#[cfg(target_arch = "loongarch64")]
403#[path = "loongarch64/ioctl.rs"]
404pub mod ioctl;
405#[cfg(feature = "loop_device")]
406#[cfg(target_arch = "loongarch64")]
407#[path = "loongarch64/loop_device.rs"]
408pub mod loop_device;
409#[cfg(feature = "mempolicy")]
410#[cfg(target_arch = "loongarch64")]
411#[path = "loongarch64/mempolicy.rs"]
412pub mod mempolicy;
413#[cfg(feature = "net")]
414#[cfg(target_arch = "loongarch64")]
415#[path = "loongarch64/net.rs"]
416pub mod net;
417#[cfg(feature = "netlink")]
418#[cfg(target_arch = "loongarch64")]
419#[path = "loongarch64/netlink.rs"]
420pub mod netlink;
421#[cfg(feature = "prctl")]
422#[cfg(target_arch = "loongarch64")]
423#[path = "loongarch64/prctl.rs"]
424pub mod prctl;
425#[cfg(feature = "system")]
426#[cfg(target_arch = "loongarch64")]
427#[path = "loongarch64/system.rs"]
428pub mod system;
429#[cfg(feature = "xdp")]
430#[cfg(target_arch = "loongarch64")]
431#[path = "loongarch64/xdp.rs"]
432pub mod xdp;
433#[cfg(feature = "bootparam")]
434#[cfg(target_arch = "mips")]
435#[path = "mips/bootparam.rs"]
436pub mod bootparam;
437#[cfg(feature = "errno")]
438#[cfg(target_arch = "mips")]
439#[path = "mips/errno.rs"]
440pub mod errno;
441#[cfg(feature = "general")]
442#[cfg(target_arch = "mips")]
443#[path = "mips/general.rs"]
444pub mod general;
445#[cfg(feature = "if_arp")]
446#[cfg(target_arch = "mips")]
447#[path = "mips/if_arp.rs"]
448pub mod if_arp;
449#[cfg(feature = "if_ether")]
450#[cfg(target_arch = "mips")]
451#[path = "mips/if_ether.rs"]
452pub mod if_ether;
453#[cfg(feature = "if_packet")]
454#[cfg(target_arch = "mips")]
455#[path = "mips/if_packet.rs"]
456pub mod if_packet;
457#[cfg(feature = "io_uring")]
458#[cfg(target_arch = "mips")]
459#[path = "mips/io_uring.rs"]
460pub mod io_uring;
461#[cfg(feature = "ioctl")]
462#[cfg(target_arch = "mips")]
463#[path = "mips/ioctl.rs"]
464pub mod ioctl;
465#[cfg(feature = "loop_device")]
466#[cfg(target_arch = "mips")]
467#[path = "mips/loop_device.rs"]
468pub mod loop_device;
469#[cfg(feature = "mempolicy")]
470#[cfg(target_arch = "mips")]
471#[path = "mips/mempolicy.rs"]
472pub mod mempolicy;
473#[cfg(feature = "net")]
474#[cfg(target_arch = "mips")]
475#[path = "mips/net.rs"]
476pub mod net;
477#[cfg(feature = "netlink")]
478#[cfg(target_arch = "mips")]
479#[path = "mips/netlink.rs"]
480pub mod netlink;
481#[cfg(feature = "prctl")]
482#[cfg(target_arch = "mips")]
483#[path = "mips/prctl.rs"]
484pub mod prctl;
485#[cfg(feature = "system")]
486#[cfg(target_arch = "mips")]
487#[path = "mips/system.rs"]
488pub mod system;
489#[cfg(feature = "xdp")]
490#[cfg(target_arch = "mips")]
491#[path = "mips/xdp.rs"]
492pub mod xdp;
493#[cfg(feature = "bootparam")]
494#[cfg(target_arch = "mips64")]
495#[path = "mips64/bootparam.rs"]
496pub mod bootparam;
497#[cfg(feature = "errno")]
498#[cfg(target_arch = "mips64")]
499#[path = "mips64/errno.rs"]
500pub mod errno;
501#[cfg(feature = "general")]
502#[cfg(target_arch = "mips64")]
503#[path = "mips64/general.rs"]
504pub mod general;
505#[cfg(feature = "if_arp")]
506#[cfg(target_arch = "mips64")]
507#[path = "mips64/if_arp.rs"]
508pub mod if_arp;
509#[cfg(feature = "if_ether")]
510#[cfg(target_arch = "mips64")]
511#[path = "mips64/if_ether.rs"]
512pub mod if_ether;
513#[cfg(feature = "if_packet")]
514#[cfg(target_arch = "mips64")]
515#[path = "mips64/if_packet.rs"]
516pub mod if_packet;
517#[cfg(feature = "io_uring")]
518#[cfg(target_arch = "mips64")]
519#[path = "mips64/io_uring.rs"]
520pub mod io_uring;
521#[cfg(feature = "ioctl")]
522#[cfg(target_arch = "mips64")]
523#[path = "mips64/ioctl.rs"]
524pub mod ioctl;
525#[cfg(feature = "loop_device")]
526#[cfg(target_arch = "mips64")]
527#[path = "mips64/loop_device.rs"]
528pub mod loop_device;
529#[cfg(feature = "mempolicy")]
530#[cfg(target_arch = "mips64")]
531#[path = "mips64/mempolicy.rs"]
532pub mod mempolicy;
533#[cfg(feature = "net")]
534#[cfg(target_arch = "mips64")]
535#[path = "mips64/net.rs"]
536pub mod net;
537#[cfg(feature = "netlink")]
538#[cfg(target_arch = "mips64")]
539#[path = "mips64/netlink.rs"]
540pub mod netlink;
541#[cfg(feature = "prctl")]
542#[cfg(target_arch = "mips64")]
543#[path = "mips64/prctl.rs"]
544pub mod prctl;
545#[cfg(feature = "system")]
546#[cfg(target_arch = "mips64")]
547#[path = "mips64/system.rs"]
548pub mod system;
549#[cfg(feature = "xdp")]
550#[cfg(target_arch = "mips64")]
551#[path = "mips64/xdp.rs"]
552pub mod xdp;
553#[cfg(feature = "bootparam")]
554#[cfg(target_arch = "mips32r6")]
555#[path = "mips32r6/bootparam.rs"]
556pub mod bootparam;
557#[cfg(feature = "errno")]
558#[cfg(target_arch = "mips32r6")]
559#[path = "mips32r6/errno.rs"]
560pub mod errno;
561#[cfg(feature = "general")]
562#[cfg(target_arch = "mips32r6")]
563#[path = "mips32r6/general.rs"]
564pub mod general;
565#[cfg(feature = "if_arp")]
566#[cfg(target_arch = "mips32r6")]
567#[path = "mips32r6/if_arp.rs"]
568pub mod if_arp;
569#[cfg(feature = "if_ether")]
570#[cfg(target_arch = "mips32r6")]
571#[path = "mips32r6/if_ether.rs"]
572pub mod if_ether;
573#[cfg(feature = "if_packet")]
574#[cfg(target_arch = "mips32r6")]
575#[path = "mips32r6/if_packet.rs"]
576pub mod if_packet;
577#[cfg(feature = "io_uring")]
578#[cfg(target_arch = "mips32r6")]
579#[path = "mips32r6/io_uring.rs"]
580pub mod io_uring;
581#[cfg(feature = "ioctl")]
582#[cfg(target_arch = "mips32r6")]
583#[path = "mips32r6/ioctl.rs"]
584pub mod ioctl;
585#[cfg(feature = "loop_device")]
586#[cfg(target_arch = "mips32r6")]
587#[path = "mips32r6/loop_device.rs"]
588pub mod loop_device;
589#[cfg(feature = "mempolicy")]
590#[cfg(target_arch = "mips32r6")]
591#[path = "mips32r6/mempolicy.rs"]
592pub mod mempolicy;
593#[cfg(feature = "net")]
594#[cfg(target_arch = "mips32r6")]
595#[path = "mips32r6/net.rs"]
596pub mod net;
597#[cfg(feature = "netlink")]
598#[cfg(target_arch = "mips32r6")]
599#[path = "mips32r6/netlink.rs"]
600pub mod netlink;
601#[cfg(feature = "prctl")]
602#[cfg(target_arch = "mips32r6")]
603#[path = "mips32r6/prctl.rs"]
604pub mod prctl;
605#[cfg(feature = "system")]
606#[cfg(target_arch = "mips32r6")]
607#[path = "mips32r6/system.rs"]
608pub mod system;
609#[cfg(feature = "xdp")]
610#[cfg(target_arch = "mips32r6")]
611#[path = "mips32r6/xdp.rs"]
612pub mod xdp;
613#[cfg(feature = "bootparam")]
614#[cfg(target_arch = "mips64r6")]
615#[path = "mips64r6/bootparam.rs"]
616pub mod bootparam;
617#[cfg(feature = "errno")]
618#[cfg(target_arch = "mips64r6")]
619#[path = "mips64r6/errno.rs"]
620pub mod errno;
621#[cfg(feature = "general")]
622#[cfg(target_arch = "mips64r6")]
623#[path = "mips64r6/general.rs"]
624pub mod general;
625#[cfg(feature = "if_arp")]
626#[cfg(target_arch = "mips64r6")]
627#[path = "mips64r6/if_arp.rs"]
628pub mod if_arp;
629#[cfg(feature = "if_ether")]
630#[cfg(target_arch = "mips64r6")]
631#[path = "mips64r6/if_ether.rs"]
632pub mod if_ether;
633#[cfg(feature = "if_packet")]
634#[cfg(target_arch = "mips64r6")]
635#[path = "mips64r6/if_packet.rs"]
636pub mod if_packet;
637#[cfg(feature = "io_uring")]
638#[cfg(target_arch = "mips64r6")]
639#[path = "mips64r6/io_uring.rs"]
640pub mod io_uring;
641#[cfg(feature = "ioctl")]
642#[cfg(target_arch = "mips64r6")]
643#[path = "mips64r6/ioctl.rs"]
644pub mod ioctl;
645#[cfg(feature = "loop_device")]
646#[cfg(target_arch = "mips64r6")]
647#[path = "mips64r6/loop_device.rs"]
648pub mod loop_device;
649#[cfg(feature = "mempolicy")]
650#[cfg(target_arch = "mips64r6")]
651#[path = "mips64r6/mempolicy.rs"]
652pub mod mempolicy;
653#[cfg(feature = "net")]
654#[cfg(target_arch = "mips64r6")]
655#[path = "mips64r6/net.rs"]
656pub mod net;
657#[cfg(feature = "netlink")]
658#[cfg(target_arch = "mips64r6")]
659#[path = "mips64r6/netlink.rs"]
660pub mod netlink;
661#[cfg(feature = "prctl")]
662#[cfg(target_arch = "mips64r6")]
663#[path = "mips64r6/prctl.rs"]
664pub mod prctl;
665#[cfg(feature = "system")]
666#[cfg(target_arch = "mips64r6")]
667#[path = "mips64r6/system.rs"]
668pub mod system;
669#[cfg(feature = "xdp")]
670#[cfg(target_arch = "mips64r6")]
671#[path = "mips64r6/xdp.rs"]
672pub mod xdp;
673#[cfg(feature = "bootparam")]
674#[cfg(target_arch = "powerpc")]
675#[path = "powerpc/bootparam.rs"]
676pub mod bootparam;
677#[cfg(feature = "errno")]
678#[cfg(target_arch = "powerpc")]
679#[path = "powerpc/errno.rs"]
680pub mod errno;
681#[cfg(feature = "general")]
682#[cfg(target_arch = "powerpc")]
683#[path = "powerpc/general.rs"]
684pub mod general;
685#[cfg(feature = "if_arp")]
686#[cfg(target_arch = "powerpc")]
687#[path = "powerpc/if_arp.rs"]
688pub mod if_arp;
689#[cfg(feature = "if_ether")]
690#[cfg(target_arch = "powerpc")]
691#[path = "powerpc/if_ether.rs"]
692pub mod if_ether;
693#[cfg(feature = "if_packet")]
694#[cfg(target_arch = "powerpc")]
695#[path = "powerpc/if_packet.rs"]
696pub mod if_packet;
697#[cfg(feature = "io_uring")]
698#[cfg(target_arch = "powerpc")]
699#[path = "powerpc/io_uring.rs"]
700pub mod io_uring;
701#[cfg(feature = "ioctl")]
702#[cfg(target_arch = "powerpc")]
703#[path = "powerpc/ioctl.rs"]
704pub mod ioctl;
705#[cfg(feature = "loop_device")]
706#[cfg(target_arch = "powerpc")]
707#[path = "powerpc/loop_device.rs"]
708pub mod loop_device;
709#[cfg(feature = "mempolicy")]
710#[cfg(target_arch = "powerpc")]
711#[path = "powerpc/mempolicy.rs"]
712pub mod mempolicy;
713#[cfg(feature = "net")]
714#[cfg(target_arch = "powerpc")]
715#[path = "powerpc/net.rs"]
716pub mod net;
717#[cfg(feature = "netlink")]
718#[cfg(target_arch = "powerpc")]
719#[path = "powerpc/netlink.rs"]
720pub mod netlink;
721#[cfg(feature = "prctl")]
722#[cfg(target_arch = "powerpc")]
723#[path = "powerpc/prctl.rs"]
724pub mod prctl;
725#[cfg(feature = "system")]
726#[cfg(target_arch = "powerpc")]
727#[path = "powerpc/system.rs"]
728pub mod system;
729#[cfg(feature = "xdp")]
730#[cfg(target_arch = "powerpc")]
731#[path = "powerpc/xdp.rs"]
732pub mod xdp;
733#[cfg(feature = "bootparam")]
734#[cfg(target_arch = "powerpc64")]
735#[path = "powerpc64/bootparam.rs"]
736pub mod bootparam;
737#[cfg(feature = "errno")]
738#[cfg(target_arch = "powerpc64")]
739#[path = "powerpc64/errno.rs"]
740pub mod errno;
741#[cfg(feature = "general")]
742#[cfg(target_arch = "powerpc64")]
743#[path = "powerpc64/general.rs"]
744pub mod general;
745#[cfg(feature = "if_arp")]
746#[cfg(target_arch = "powerpc64")]
747#[path = "powerpc64/if_arp.rs"]
748pub mod if_arp;
749#[cfg(feature = "if_ether")]
750#[cfg(target_arch = "powerpc64")]
751#[path = "powerpc64/if_ether.rs"]
752pub mod if_ether;
753#[cfg(feature = "if_packet")]
754#[cfg(target_arch = "powerpc64")]
755#[path = "powerpc64/if_packet.rs"]
756pub mod if_packet;
757#[cfg(feature = "io_uring")]
758#[cfg(target_arch = "powerpc64")]
759#[path = "powerpc64/io_uring.rs"]
760pub mod io_uring;
761#[cfg(feature = "ioctl")]
762#[cfg(target_arch = "powerpc64")]
763#[path = "powerpc64/ioctl.rs"]
764pub mod ioctl;
765#[cfg(feature = "loop_device")]
766#[cfg(target_arch = "powerpc64")]
767#[path = "powerpc64/loop_device.rs"]
768pub mod loop_device;
769#[cfg(feature = "mempolicy")]
770#[cfg(target_arch = "powerpc64")]
771#[path = "powerpc64/mempolicy.rs"]
772pub mod mempolicy;
773#[cfg(feature = "net")]
774#[cfg(target_arch = "powerpc64")]
775#[path = "powerpc64/net.rs"]
776pub mod net;
777#[cfg(feature = "netlink")]
778#[cfg(target_arch = "powerpc64")]
779#[path = "powerpc64/netlink.rs"]
780pub mod netlink;
781#[cfg(feature = "prctl")]
782#[cfg(target_arch = "powerpc64")]
783#[path = "powerpc64/prctl.rs"]
784pub mod prctl;
785#[cfg(feature = "system")]
786#[cfg(target_arch = "powerpc64")]
787#[path = "powerpc64/system.rs"]
788pub mod system;
789#[cfg(feature = "xdp")]
790#[cfg(target_arch = "powerpc64")]
791#[path = "powerpc64/xdp.rs"]
792pub mod xdp;
793#[cfg(feature = "bootparam")]
794#[cfg(target_arch = "riscv32")]
795#[path = "riscv32/bootparam.rs"]
796pub mod bootparam;
797#[cfg(feature = "errno")]
798#[cfg(target_arch = "riscv32")]
799#[path = "riscv32/errno.rs"]
800pub mod errno;
801#[cfg(feature = "general")]
802#[cfg(target_arch = "riscv32")]
803#[path = "riscv32/general.rs"]
804pub mod general;
805#[cfg(feature = "if_arp")]
806#[cfg(target_arch = "riscv32")]
807#[path = "riscv32/if_arp.rs"]
808pub mod if_arp;
809#[cfg(feature = "if_ether")]
810#[cfg(target_arch = "riscv32")]
811#[path = "riscv32/if_ether.rs"]
812pub mod if_ether;
813#[cfg(feature = "if_packet")]
814#[cfg(target_arch = "riscv32")]
815#[path = "riscv32/if_packet.rs"]
816pub mod if_packet;
817#[cfg(feature = "io_uring")]
818#[cfg(target_arch = "riscv32")]
819#[path = "riscv32/io_uring.rs"]
820pub mod io_uring;
821#[cfg(feature = "ioctl")]
822#[cfg(target_arch = "riscv32")]
823#[path = "riscv32/ioctl.rs"]
824pub mod ioctl;
825#[cfg(feature = "loop_device")]
826#[cfg(target_arch = "riscv32")]
827#[path = "riscv32/loop_device.rs"]
828pub mod loop_device;
829#[cfg(feature = "mempolicy")]
830#[cfg(target_arch = "riscv32")]
831#[path = "riscv32/mempolicy.rs"]
832pub mod mempolicy;
833#[cfg(feature = "net")]
834#[cfg(target_arch = "riscv32")]
835#[path = "riscv32/net.rs"]
836pub mod net;
837#[cfg(feature = "netlink")]
838#[cfg(target_arch = "riscv32")]
839#[path = "riscv32/netlink.rs"]
840pub mod netlink;
841#[cfg(feature = "prctl")]
842#[cfg(target_arch = "riscv32")]
843#[path = "riscv32/prctl.rs"]
844pub mod prctl;
845#[cfg(feature = "system")]
846#[cfg(target_arch = "riscv32")]
847#[path = "riscv32/system.rs"]
848pub mod system;
849#[cfg(feature = "xdp")]
850#[cfg(target_arch = "riscv32")]
851#[path = "riscv32/xdp.rs"]
852pub mod xdp;
853#[cfg(feature = "bootparam")]
854#[cfg(target_arch = "riscv64")]
855#[path = "riscv64/bootparam.rs"]
856pub mod bootparam;
857#[cfg(feature = "errno")]
858#[cfg(target_arch = "riscv64")]
859#[path = "riscv64/errno.rs"]
860pub mod errno;
861#[cfg(feature = "general")]
862#[cfg(target_arch = "riscv64")]
863#[path = "riscv64/general.rs"]
864pub mod general;
865#[cfg(feature = "if_arp")]
866#[cfg(target_arch = "riscv64")]
867#[path = "riscv64/if_arp.rs"]
868pub mod if_arp;
869#[cfg(feature = "if_ether")]
870#[cfg(target_arch = "riscv64")]
871#[path = "riscv64/if_ether.rs"]
872pub mod if_ether;
873#[cfg(feature = "if_packet")]
874#[cfg(target_arch = "riscv64")]
875#[path = "riscv64/if_packet.rs"]
876pub mod if_packet;
877#[cfg(feature = "io_uring")]
878#[cfg(target_arch = "riscv64")]
879#[path = "riscv64/io_uring.rs"]
880pub mod io_uring;
881#[cfg(feature = "ioctl")]
882#[cfg(target_arch = "riscv64")]
883#[path = "riscv64/ioctl.rs"]
884pub mod ioctl;
885#[cfg(feature = "loop_device")]
886#[cfg(target_arch = "riscv64")]
887#[path = "riscv64/loop_device.rs"]
888pub mod loop_device;
889#[cfg(feature = "mempolicy")]
890#[cfg(target_arch = "riscv64")]
891#[path = "riscv64/mempolicy.rs"]
892pub mod mempolicy;
893#[cfg(feature = "net")]
894#[cfg(target_arch = "riscv64")]
895#[path = "riscv64/net.rs"]
896pub mod net;
897#[cfg(feature = "netlink")]
898#[cfg(target_arch = "riscv64")]
899#[path = "riscv64/netlink.rs"]
900pub mod netlink;
901#[cfg(feature = "prctl")]
902#[cfg(target_arch = "riscv64")]
903#[path = "riscv64/prctl.rs"]
904pub mod prctl;
905#[cfg(feature = "system")]
906#[cfg(target_arch = "riscv64")]
907#[path = "riscv64/system.rs"]
908pub mod system;
909#[cfg(feature = "xdp")]
910#[cfg(target_arch = "riscv64")]
911#[path = "riscv64/xdp.rs"]
912pub mod xdp;
913#[cfg(feature = "bootparam")]
914#[cfg(target_arch = "s390x")]
915#[path = "s390x/bootparam.rs"]
916pub mod bootparam;
917#[cfg(feature = "errno")]
918#[cfg(target_arch = "s390x")]
919#[path = "s390x/errno.rs"]
920pub mod errno;
921#[cfg(feature = "general")]
922#[cfg(target_arch = "s390x")]
923#[path = "s390x/general.rs"]
924pub mod general;
925#[cfg(feature = "if_arp")]
926#[cfg(target_arch = "s390x")]
927#[path = "s390x/if_arp.rs"]
928pub mod if_arp;
929#[cfg(feature = "if_ether")]
930#[cfg(target_arch = "s390x")]
931#[path = "s390x/if_ether.rs"]
932pub mod if_ether;
933#[cfg(feature = "if_packet")]
934#[cfg(target_arch = "s390x")]
935#[path = "s390x/if_packet.rs"]
936pub mod if_packet;
937#[cfg(feature = "io_uring")]
938#[cfg(target_arch = "s390x")]
939#[path = "s390x/io_uring.rs"]
940pub mod io_uring;
941#[cfg(feature = "ioctl")]
942#[cfg(target_arch = "s390x")]
943#[path = "s390x/ioctl.rs"]
944pub mod ioctl;
945#[cfg(feature = "loop_device")]
946#[cfg(target_arch = "s390x")]
947#[path = "s390x/loop_device.rs"]
948pub mod loop_device;
949#[cfg(feature = "mempolicy")]
950#[cfg(target_arch = "s390x")]
951#[path = "s390x/mempolicy.rs"]
952pub mod mempolicy;
953#[cfg(feature = "net")]
954#[cfg(target_arch = "s390x")]
955#[path = "s390x/net.rs"]
956pub mod net;
957#[cfg(feature = "netlink")]
958#[cfg(target_arch = "s390x")]
959#[path = "s390x/netlink.rs"]
960pub mod netlink;
961#[cfg(feature = "prctl")]
962#[cfg(target_arch = "s390x")]
963#[path = "s390x/prctl.rs"]
964pub mod prctl;
965#[cfg(feature = "system")]
966#[cfg(target_arch = "s390x")]
967#[path = "s390x/system.rs"]
968pub mod system;
969#[cfg(feature = "xdp")]
970#[cfg(target_arch = "s390x")]
971#[path = "s390x/xdp.rs"]
972pub mod xdp;
973#[cfg(feature = "bootparam")]
974#[cfg(target_arch = "sparc")]
975#[path = "sparc/bootparam.rs"]
976pub mod bootparam;
977#[cfg(feature = "errno")]
978#[cfg(target_arch = "sparc")]
979#[path = "sparc/errno.rs"]
980pub mod errno;
981#[cfg(feature = "general")]
982#[cfg(target_arch = "sparc")]
983#[path = "sparc/general.rs"]
984pub mod general;
985#[cfg(feature = "if_arp")]
986#[cfg(target_arch = "sparc")]
987#[path = "sparc/if_arp.rs"]
988pub mod if_arp;
989#[cfg(feature = "if_ether")]
990#[cfg(target_arch = "sparc")]
991#[path = "sparc/if_ether.rs"]
992pub mod if_ether;
993#[cfg(feature = "if_packet")]
994#[cfg(target_arch = "sparc")]
995#[path = "sparc/if_packet.rs"]
996pub mod if_packet;
997#[cfg(feature = "io_uring")]
998#[cfg(target_arch = "sparc")]
999#[path = "sparc/io_uring.rs"]
1000pub mod io_uring;
1001#[cfg(feature = "ioctl")]
1002#[cfg(target_arch = "sparc")]
1003#[path = "sparc/ioctl.rs"]
1004pub mod ioctl;
1005#[cfg(feature = "loop_device")]
1006#[cfg(target_arch = "sparc")]
1007#[path = "sparc/loop_device.rs"]
1008pub mod loop_device;
1009#[cfg(feature = "mempolicy")]
1010#[cfg(target_arch = "sparc")]
1011#[path = "sparc/mempolicy.rs"]
1012pub mod mempolicy;
1013#[cfg(feature = "net")]
1014#[cfg(target_arch = "sparc")]
1015#[path = "sparc/net.rs"]
1016pub mod net;
1017#[cfg(feature = "netlink")]
1018#[cfg(target_arch = "sparc")]
1019#[path = "sparc/netlink.rs"]
1020pub mod netlink;
1021#[cfg(feature = "prctl")]
1022#[cfg(target_arch = "sparc")]
1023#[path = "sparc/prctl.rs"]
1024pub mod prctl;
1025#[cfg(feature = "system")]
1026#[cfg(target_arch = "sparc")]
1027#[path = "sparc/system.rs"]
1028pub mod system;
1029#[cfg(feature = "xdp")]
1030#[cfg(target_arch = "sparc")]
1031#[path = "sparc/xdp.rs"]
1032pub mod xdp;
1033#[cfg(feature = "bootparam")]
1034#[cfg(target_arch = "sparc64")]
1035#[path = "sparc64/bootparam.rs"]
1036pub mod bootparam;
1037#[cfg(feature = "errno")]
1038#[cfg(target_arch = "sparc64")]
1039#[path = "sparc64/errno.rs"]
1040pub mod errno;
1041#[cfg(feature = "general")]
1042#[cfg(target_arch = "sparc64")]
1043#[path = "sparc64/general.rs"]
1044pub mod general;
1045#[cfg(feature = "if_arp")]
1046#[cfg(target_arch = "sparc64")]
1047#[path = "sparc64/if_arp.rs"]
1048pub mod if_arp;
1049#[cfg(feature = "if_ether")]
1050#[cfg(target_arch = "sparc64")]
1051#[path = "sparc64/if_ether.rs"]
1052pub mod if_ether;
1053#[cfg(feature = "if_packet")]
1054#[cfg(target_arch = "sparc64")]
1055#[path = "sparc64/if_packet.rs"]
1056pub mod if_packet;
1057#[cfg(feature = "io_uring")]
1058#[cfg(target_arch = "sparc64")]
1059#[path = "sparc64/io_uring.rs"]
1060pub mod io_uring;
1061#[cfg(feature = "ioctl")]
1062#[cfg(target_arch = "sparc64")]
1063#[path = "sparc64/ioctl.rs"]
1064pub mod ioctl;
1065#[cfg(feature = "loop_device")]
1066#[cfg(target_arch = "sparc64")]
1067#[path = "sparc64/loop_device.rs"]
1068pub mod loop_device;
1069#[cfg(feature = "mempolicy")]
1070#[cfg(target_arch = "sparc64")]
1071#[path = "sparc64/mempolicy.rs"]
1072pub mod mempolicy;
1073#[cfg(feature = "net")]
1074#[cfg(target_arch = "sparc64")]
1075#[path = "sparc64/net.rs"]
1076pub mod net;
1077#[cfg(feature = "netlink")]
1078#[cfg(target_arch = "sparc64")]
1079#[path = "sparc64/netlink.rs"]
1080pub mod netlink;
1081#[cfg(feature = "prctl")]
1082#[cfg(target_arch = "sparc64")]
1083#[path = "sparc64/prctl.rs"]
1084pub mod prctl;
1085#[cfg(feature = "system")]
1086#[cfg(target_arch = "sparc64")]
1087#[path = "sparc64/system.rs"]
1088pub mod system;
1089#[cfg(feature = "xdp")]
1090#[cfg(target_arch = "sparc64")]
1091#[path = "sparc64/xdp.rs"]
1092pub mod xdp;
1093#[cfg(feature = "bootparam")]
1094#[cfg(target_arch = "x86")]
1095#[path = "x86/bootparam.rs"]
1096pub mod bootparam;
1097#[cfg(feature = "errno")]
1098#[cfg(target_arch = "x86")]
1099#[path = "x86/errno.rs"]
1100pub mod errno;
1101#[cfg(feature = "general")]
1102#[cfg(target_arch = "x86")]
1103#[path = "x86/general.rs"]
1104pub mod general;
1105#[cfg(feature = "if_arp")]
1106#[cfg(target_arch = "x86")]
1107#[path = "x86/if_arp.rs"]
1108pub mod if_arp;
1109#[cfg(feature = "if_ether")]
1110#[cfg(target_arch = "x86")]
1111#[path = "x86/if_ether.rs"]
1112pub mod if_ether;
1113#[cfg(feature = "if_packet")]
1114#[cfg(target_arch = "x86")]
1115#[path = "x86/if_packet.rs"]
1116pub mod if_packet;
1117#[cfg(feature = "io_uring")]
1118#[cfg(target_arch = "x86")]
1119#[path = "x86/io_uring.rs"]
1120pub mod io_uring;
1121#[cfg(feature = "ioctl")]
1122#[cfg(target_arch = "x86")]
1123#[path = "x86/ioctl.rs"]
1124pub mod ioctl;
1125#[cfg(feature = "loop_device")]
1126#[cfg(target_arch = "x86")]
1127#[path = "x86/loop_device.rs"]
1128pub mod loop_device;
1129#[cfg(feature = "mempolicy")]
1130#[cfg(target_arch = "x86")]
1131#[path = "x86/mempolicy.rs"]
1132pub mod mempolicy;
1133#[cfg(feature = "net")]
1134#[cfg(target_arch = "x86")]
1135#[path = "x86/net.rs"]
1136pub mod net;
1137#[cfg(feature = "netlink")]
1138#[cfg(target_arch = "x86")]
1139#[path = "x86/netlink.rs"]
1140pub mod netlink;
1141#[cfg(feature = "prctl")]
1142#[cfg(target_arch = "x86")]
1143#[path = "x86/prctl.rs"]
1144pub mod prctl;
1145#[cfg(feature = "system")]
1146#[cfg(target_arch = "x86")]
1147#[path = "x86/system.rs"]
1148pub mod system;
1149#[cfg(feature = "xdp")]
1150#[cfg(target_arch = "x86")]
1151#[path = "x86/xdp.rs"]
1152pub mod xdp;
1153#[cfg(feature = "bootparam")]
1154#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
1155#[path = "x86_64/bootparam.rs"]
1156pub mod bootparam;
1157#[cfg(feature = "errno")]
1158#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
1159#[path = "x86_64/errno.rs"]
1160pub mod errno;
1161#[cfg(feature = "general")]
1162#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
1163#[path = "x86_64/general.rs"]
1164pub mod general;
1165#[cfg(feature = "if_arp")]
1166#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
1167#[path = "x86_64/if_arp.rs"]
1168pub mod if_arp;
1169#[cfg(feature = "if_ether")]
1170#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
1171#[path = "x86_64/if_ether.rs"]
1172pub mod if_ether;
1173#[cfg(feature = "if_packet")]
1174#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
1175#[path = "x86_64/if_packet.rs"]
1176pub mod if_packet;
1177#[cfg(feature = "io_uring")]
1178#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
1179#[path = "x86_64/io_uring.rs"]
1180pub mod io_uring;
1181#[cfg(feature = "ioctl")]
1182#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
1183#[path = "x86_64/ioctl.rs"]
1184pub mod ioctl;
1185#[cfg(feature = "loop_device")]
1186#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
1187#[path = "x86_64/loop_device.rs"]
1188pub mod loop_device;
1189#[cfg(feature = "mempolicy")]
1190#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
1191#[path = "x86_64/mempolicy.rs"]
1192pub mod mempolicy;
1193#[cfg(feature = "net")]
1194#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
1195#[path = "x86_64/net.rs"]
1196pub mod net;
1197#[cfg(feature = "netlink")]
1198#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
1199#[path = "x86_64/netlink.rs"]
1200pub mod netlink;
1201#[cfg(feature = "prctl")]
1202#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
1203#[path = "x86_64/prctl.rs"]
1204pub mod prctl;
1205#[cfg(feature = "system")]
1206#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
1207#[path = "x86_64/system.rs"]
1208pub mod system;
1209#[cfg(feature = "xdp")]
1210#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
1211#[path = "x86_64/xdp.rs"]
1212pub mod xdp;
1213#[cfg(feature = "bootparam")]
1214#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
1215#[path = "x32/bootparam.rs"]
1216pub mod bootparam;
1217#[cfg(feature = "errno")]
1218#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
1219#[path = "x32/errno.rs"]
1220pub mod errno;
1221#[cfg(feature = "general")]
1222#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
1223#[path = "x32/general.rs"]
1224pub mod general;
1225#[cfg(feature = "if_arp")]
1226#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
1227#[path = "x32/if_arp.rs"]
1228pub mod if_arp;
1229#[cfg(feature = "if_ether")]
1230#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
1231#[path = "x32/if_ether.rs"]
1232pub mod if_ether;
1233#[cfg(feature = "if_packet")]
1234#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
1235#[path = "x32/if_packet.rs"]
1236pub mod if_packet;
1237#[cfg(feature = "io_uring")]
1238#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
1239#[path = "x32/io_uring.rs"]
1240pub mod io_uring;
1241#[cfg(feature = "ioctl")]
1242#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
1243#[path = "x32/ioctl.rs"]
1244pub mod ioctl;
1245#[cfg(feature = "loop_device")]
1246#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
1247#[path = "x32/loop_device.rs"]
1248pub mod loop_device;
1249#[cfg(feature = "mempolicy")]
1250#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
1251#[path = "x32/mempolicy.rs"]
1252pub mod mempolicy;
1253#[cfg(feature = "net")]
1254#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
1255#[path = "x32/net.rs"]
1256pub mod net;
1257#[cfg(feature = "netlink")]
1258#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
1259#[path = "x32/netlink.rs"]
1260pub mod netlink;
1261#[cfg(feature = "prctl")]
1262#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
1263#[path = "x32/prctl.rs"]
1264pub mod prctl;
1265#[cfg(feature = "system")]
1266#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
1267#[path = "x32/system.rs"]
1268pub mod system;
1269#[cfg(feature = "xdp")]
1270#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
1271#[path = "x32/xdp.rs"]
1272pub mod xdp;