1 #![allow(non_camel_case_types, non_upper_case_globals, non_snake_case)]
2 #![cfg_attr(not(feature = "std"), no_std)]
4 #[cfg(feature = "std")]
5 pub use std
::os
::raw
as ctypes
;
7 #[cfg(all(not(feature = "std"), feature = "no_std"))]
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.
15 // The following assumes that Linux is always either ILP32 or LP64,
16 // and char is always 8-bit.
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;
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;
41 pub use core
::ffi
::c_void
;
44 // Confirm that our type definitions above match the actual type definitions.
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
);
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")]
67 impl PartialEq
for general
::__kernel_timespec
{
68 fn eq(&self, other
: &Self) -> bool
{
70 let Self { tv_sec, tv_nsec }
= self;
73 let Self { tv_sec, tv_nsec }
= other
;
78 #[cfg(feature = "general")]
79 impl Eq
for general
::__kernel_timespec {}
81 #[cfg(feature = "net")]
83 use crate::ctypes
::{c_long, c_uchar, c_uint}
;
84 use crate::net
::{cmsghdr, msghdr}
;
85 use core
::mem
::size_of
;
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)
93 pub const unsafe fn CMSG_DATA(cmsg
: *const cmsghdr
) -> *mut c_uchar
{
94 (cmsg
as *mut c_uchar
).add(size_of
::<cmsghdr
>())
97 pub const unsafe fn CMSG_SPACE(len
: c_uint
) -> c_uint
{
98 size_of
::<cmsghdr
>() as c_uint
+ CMSG_ALIGN(len
)
101 pub const unsafe fn CMSG_LEN(len
: c_uint
) -> c_uint
{
102 size_of
::<cmsghdr
>() as c_uint
+ len
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();
110 (*mhdr
).msg_control
as *mut cmsghdr
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.
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);
122 if cmsg_len
< size_of
::<cmsghdr
>() as _
{
123 return ptr
::null_mut();
126 if next_cmsg
.add(1) as usize > max
127 || next_cmsg
as usize + CMSG_ALIGN(cmsg_len
as _
) as usize > max
129 return ptr
::null_mut();
136 #[cfg(feature = "general")]
137 pub mod select_macros
{
138 use crate::ctypes
::c_int
;
139 use crate::general
::__kernel_fd_set
;
140 use core
::mem
::size_of
;
142 pub unsafe fn FD_CLR(fd
: c_int
, set
: *mut __kernel_fd_set
) {
143 let bytes
= set
as *mut u8;
145 *bytes
.add((fd
/ 8) as usize) &= !(1 << (fd
% 8));
149 pub unsafe fn FD_SET(fd
: c_int
, set
: *mut __kernel_fd_set
) {
150 let bytes
= set
as *mut u8;
152 *bytes
.add((fd
/ 8) as usize) |= 1 << (fd
% 8);
156 pub unsafe fn FD_ISSET(fd
: c_int
, set
: *const __kernel_fd_set
) -> bool
{
157 let bytes
= set
as *const u8;
159 *bytes
.add((fd
/ 8) as usize) & (1 << (fd
% 8)) != 0
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
>());
171 #[cfg(feature = "general")]
172 pub mod signal_macros
{
173 pub const SIG_DFL
: super::general
::__kernel_sighandler_t
= None
;
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.
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.
184 core
::mem
::transmute
::<usize, unsafe extern "C" fn(crate::ctypes
::c_int
)>(1)
189 // The rest of this file is auto-generated!
190 #[cfg(feature = "errno")]
191 #[cfg(target_arch = "arm")]
192 #[path = "arm/errno.rs"]
194 #[cfg(feature = "general")]
195 #[cfg(target_arch = "arm")]
196 #[path = "arm/general.rs"]
198 #[cfg(feature = "if_ether")]
199 #[cfg(target_arch = "arm")]
200 #[path = "arm/if_ether.rs"]
202 #[cfg(feature = "io_uring")]
203 #[cfg(target_arch = "arm")]
204 #[path = "arm/io_uring.rs"]
206 #[cfg(feature = "ioctl")]
207 #[cfg(target_arch = "arm")]
208 #[path = "arm/ioctl.rs"]
210 #[cfg(feature = "net")]
211 #[cfg(target_arch = "arm")]
212 #[path = "arm/net.rs"]
214 #[cfg(feature = "netlink")]
215 #[cfg(target_arch = "arm")]
216 #[path = "arm/netlink.rs"]
218 #[cfg(feature = "prctl")]
219 #[cfg(target_arch = "arm")]
220 #[path = "arm/prctl.rs"]
222 #[cfg(feature = "system")]
223 #[cfg(target_arch = "arm")]
224 #[path = "arm/system.rs"]
226 #[cfg(feature = "errno")]
227 #[cfg(target_arch = "aarch64")]
228 #[path = "aarch64/errno.rs"]
230 #[cfg(feature = "general")]
231 #[cfg(target_arch = "aarch64")]
232 #[path = "aarch64/general.rs"]
234 #[cfg(feature = "if_ether")]
235 #[cfg(target_arch = "aarch64")]
236 #[path = "aarch64/if_ether.rs"]
238 #[cfg(feature = "io_uring")]
239 #[cfg(target_arch = "aarch64")]
240 #[path = "aarch64/io_uring.rs"]
242 #[cfg(feature = "ioctl")]
243 #[cfg(target_arch = "aarch64")]
244 #[path = "aarch64/ioctl.rs"]
246 #[cfg(feature = "net")]
247 #[cfg(target_arch = "aarch64")]
248 #[path = "aarch64/net.rs"]
250 #[cfg(feature = "netlink")]
251 #[cfg(target_arch = "aarch64")]
252 #[path = "aarch64/netlink.rs"]
254 #[cfg(feature = "prctl")]
255 #[cfg(target_arch = "aarch64")]
256 #[path = "aarch64/prctl.rs"]
258 #[cfg(feature = "system")]
259 #[cfg(target_arch = "aarch64")]
260 #[path = "aarch64/system.rs"]
262 #[cfg(feature = "errno")]
263 #[cfg(target_arch = "loongarch64")]
264 #[path = "loongarch64/errno.rs"]
266 #[cfg(feature = "general")]
267 #[cfg(target_arch = "loongarch64")]
268 #[path = "loongarch64/general.rs"]
270 #[cfg(feature = "if_ether")]
271 #[cfg(target_arch = "loongarch64")]
272 #[path = "loongarch64/if_ether.rs"]
274 #[cfg(feature = "io_uring")]
275 #[cfg(target_arch = "loongarch64")]
276 #[path = "loongarch64/io_uring.rs"]
278 #[cfg(feature = "ioctl")]
279 #[cfg(target_arch = "loongarch64")]
280 #[path = "loongarch64/ioctl.rs"]
282 #[cfg(feature = "net")]
283 #[cfg(target_arch = "loongarch64")]
284 #[path = "loongarch64/net.rs"]
286 #[cfg(feature = "netlink")]
287 #[cfg(target_arch = "loongarch64")]
288 #[path = "loongarch64/netlink.rs"]
290 #[cfg(feature = "prctl")]
291 #[cfg(target_arch = "loongarch64")]
292 #[path = "loongarch64/prctl.rs"]
294 #[cfg(feature = "system")]
295 #[cfg(target_arch = "loongarch64")]
296 #[path = "loongarch64/system.rs"]
298 #[cfg(feature = "errno")]
299 #[cfg(target_arch = "mips")]
300 #[path = "mips/errno.rs"]
302 #[cfg(feature = "general")]
303 #[cfg(target_arch = "mips")]
304 #[path = "mips/general.rs"]
306 #[cfg(feature = "if_ether")]
307 #[cfg(target_arch = "mips")]
308 #[path = "mips/if_ether.rs"]
310 #[cfg(feature = "io_uring")]
311 #[cfg(target_arch = "mips")]
312 #[path = "mips/io_uring.rs"]
314 #[cfg(feature = "ioctl")]
315 #[cfg(target_arch = "mips")]
316 #[path = "mips/ioctl.rs"]
318 #[cfg(feature = "net")]
319 #[cfg(target_arch = "mips")]
320 #[path = "mips/net.rs"]
322 #[cfg(feature = "netlink")]
323 #[cfg(target_arch = "mips")]
324 #[path = "mips/netlink.rs"]
326 #[cfg(feature = "prctl")]
327 #[cfg(target_arch = "mips")]
328 #[path = "mips/prctl.rs"]
330 #[cfg(feature = "system")]
331 #[cfg(target_arch = "mips")]
332 #[path = "mips/system.rs"]
334 #[cfg(feature = "errno")]
335 #[cfg(target_arch = "mips64")]
336 #[path = "mips64/errno.rs"]
338 #[cfg(feature = "general")]
339 #[cfg(target_arch = "mips64")]
340 #[path = "mips64/general.rs"]
342 #[cfg(feature = "if_ether")]
343 #[cfg(target_arch = "mips64")]
344 #[path = "mips64/if_ether.rs"]
346 #[cfg(feature = "io_uring")]
347 #[cfg(target_arch = "mips64")]
348 #[path = "mips64/io_uring.rs"]
350 #[cfg(feature = "ioctl")]
351 #[cfg(target_arch = "mips64")]
352 #[path = "mips64/ioctl.rs"]
354 #[cfg(feature = "net")]
355 #[cfg(target_arch = "mips64")]
356 #[path = "mips64/net.rs"]
358 #[cfg(feature = "netlink")]
359 #[cfg(target_arch = "mips64")]
360 #[path = "mips64/netlink.rs"]
362 #[cfg(feature = "prctl")]
363 #[cfg(target_arch = "mips64")]
364 #[path = "mips64/prctl.rs"]
366 #[cfg(feature = "system")]
367 #[cfg(target_arch = "mips64")]
368 #[path = "mips64/system.rs"]
370 #[cfg(feature = "errno")]
371 #[cfg(target_arch = "mips32r6")]
372 #[path = "mips32r6/errno.rs"]
374 #[cfg(feature = "general")]
375 #[cfg(target_arch = "mips32r6")]
376 #[path = "mips32r6/general.rs"]
378 #[cfg(feature = "if_ether")]
379 #[cfg(target_arch = "mips32r6")]
380 #[path = "mips32r6/if_ether.rs"]
382 #[cfg(feature = "io_uring")]
383 #[cfg(target_arch = "mips32r6")]
384 #[path = "mips32r6/io_uring.rs"]
386 #[cfg(feature = "ioctl")]
387 #[cfg(target_arch = "mips32r6")]
388 #[path = "mips32r6/ioctl.rs"]
390 #[cfg(feature = "net")]
391 #[cfg(target_arch = "mips32r6")]
392 #[path = "mips32r6/net.rs"]
394 #[cfg(feature = "netlink")]
395 #[cfg(target_arch = "mips32r6")]
396 #[path = "mips32r6/netlink.rs"]
398 #[cfg(feature = "prctl")]
399 #[cfg(target_arch = "mips32r6")]
400 #[path = "mips32r6/prctl.rs"]
402 #[cfg(feature = "system")]
403 #[cfg(target_arch = "mips32r6")]
404 #[path = "mips32r6/system.rs"]
406 #[cfg(feature = "errno")]
407 #[cfg(target_arch = "mips64r6")]
408 #[path = "mips64r6/errno.rs"]
410 #[cfg(feature = "general")]
411 #[cfg(target_arch = "mips64r6")]
412 #[path = "mips64r6/general.rs"]
414 #[cfg(feature = "if_ether")]
415 #[cfg(target_arch = "mips64r6")]
416 #[path = "mips64r6/if_ether.rs"]
418 #[cfg(feature = "io_uring")]
419 #[cfg(target_arch = "mips64r6")]
420 #[path = "mips64r6/io_uring.rs"]
422 #[cfg(feature = "ioctl")]
423 #[cfg(target_arch = "mips64r6")]
424 #[path = "mips64r6/ioctl.rs"]
426 #[cfg(feature = "net")]
427 #[cfg(target_arch = "mips64r6")]
428 #[path = "mips64r6/net.rs"]
430 #[cfg(feature = "netlink")]
431 #[cfg(target_arch = "mips64r6")]
432 #[path = "mips64r6/netlink.rs"]
434 #[cfg(feature = "prctl")]
435 #[cfg(target_arch = "mips64r6")]
436 #[path = "mips64r6/prctl.rs"]
438 #[cfg(feature = "system")]
439 #[cfg(target_arch = "mips64r6")]
440 #[path = "mips64r6/system.rs"]
442 #[cfg(feature = "errno")]
443 #[cfg(target_arch = "powerpc")]
444 #[path = "powerpc/errno.rs"]
446 #[cfg(feature = "general")]
447 #[cfg(target_arch = "powerpc")]
448 #[path = "powerpc/general.rs"]
450 #[cfg(feature = "if_ether")]
451 #[cfg(target_arch = "powerpc")]
452 #[path = "powerpc/if_ether.rs"]
454 #[cfg(feature = "io_uring")]
455 #[cfg(target_arch = "powerpc")]
456 #[path = "powerpc/io_uring.rs"]
458 #[cfg(feature = "ioctl")]
459 #[cfg(target_arch = "powerpc")]
460 #[path = "powerpc/ioctl.rs"]
462 #[cfg(feature = "net")]
463 #[cfg(target_arch = "powerpc")]
464 #[path = "powerpc/net.rs"]
466 #[cfg(feature = "netlink")]
467 #[cfg(target_arch = "powerpc")]
468 #[path = "powerpc/netlink.rs"]
470 #[cfg(feature = "prctl")]
471 #[cfg(target_arch = "powerpc")]
472 #[path = "powerpc/prctl.rs"]
474 #[cfg(feature = "system")]
475 #[cfg(target_arch = "powerpc")]
476 #[path = "powerpc/system.rs"]
478 #[cfg(feature = "errno")]
479 #[cfg(target_arch = "powerpc64")]
480 #[path = "powerpc64/errno.rs"]
482 #[cfg(feature = "general")]
483 #[cfg(target_arch = "powerpc64")]
484 #[path = "powerpc64/general.rs"]
486 #[cfg(feature = "if_ether")]
487 #[cfg(target_arch = "powerpc64")]
488 #[path = "powerpc64/if_ether.rs"]
490 #[cfg(feature = "io_uring")]
491 #[cfg(target_arch = "powerpc64")]
492 #[path = "powerpc64/io_uring.rs"]
494 #[cfg(feature = "ioctl")]
495 #[cfg(target_arch = "powerpc64")]
496 #[path = "powerpc64/ioctl.rs"]
498 #[cfg(feature = "net")]
499 #[cfg(target_arch = "powerpc64")]
500 #[path = "powerpc64/net.rs"]
502 #[cfg(feature = "netlink")]
503 #[cfg(target_arch = "powerpc64")]
504 #[path = "powerpc64/netlink.rs"]
506 #[cfg(feature = "prctl")]
507 #[cfg(target_arch = "powerpc64")]
508 #[path = "powerpc64/prctl.rs"]
510 #[cfg(feature = "system")]
511 #[cfg(target_arch = "powerpc64")]
512 #[path = "powerpc64/system.rs"]
514 #[cfg(feature = "errno")]
515 #[cfg(target_arch = "riscv32")]
516 #[path = "riscv32/errno.rs"]
518 #[cfg(feature = "general")]
519 #[cfg(target_arch = "riscv32")]
520 #[path = "riscv32/general.rs"]
522 #[cfg(feature = "if_ether")]
523 #[cfg(target_arch = "riscv32")]
524 #[path = "riscv32/if_ether.rs"]
526 #[cfg(feature = "io_uring")]
527 #[cfg(target_arch = "riscv32")]
528 #[path = "riscv32/io_uring.rs"]
530 #[cfg(feature = "ioctl")]
531 #[cfg(target_arch = "riscv32")]
532 #[path = "riscv32/ioctl.rs"]
534 #[cfg(feature = "net")]
535 #[cfg(target_arch = "riscv32")]
536 #[path = "riscv32/net.rs"]
538 #[cfg(feature = "netlink")]
539 #[cfg(target_arch = "riscv32")]
540 #[path = "riscv32/netlink.rs"]
542 #[cfg(feature = "prctl")]
543 #[cfg(target_arch = "riscv32")]
544 #[path = "riscv32/prctl.rs"]
546 #[cfg(feature = "system")]
547 #[cfg(target_arch = "riscv32")]
548 #[path = "riscv32/system.rs"]
550 #[cfg(feature = "errno")]
551 #[cfg(target_arch = "riscv64")]
552 #[path = "riscv64/errno.rs"]
554 #[cfg(feature = "general")]
555 #[cfg(target_arch = "riscv64")]
556 #[path = "riscv64/general.rs"]
558 #[cfg(feature = "if_ether")]
559 #[cfg(target_arch = "riscv64")]
560 #[path = "riscv64/if_ether.rs"]
562 #[cfg(feature = "io_uring")]
563 #[cfg(target_arch = "riscv64")]
564 #[path = "riscv64/io_uring.rs"]
566 #[cfg(feature = "ioctl")]
567 #[cfg(target_arch = "riscv64")]
568 #[path = "riscv64/ioctl.rs"]
570 #[cfg(feature = "net")]
571 #[cfg(target_arch = "riscv64")]
572 #[path = "riscv64/net.rs"]
574 #[cfg(feature = "netlink")]
575 #[cfg(target_arch = "riscv64")]
576 #[path = "riscv64/netlink.rs"]
578 #[cfg(feature = "prctl")]
579 #[cfg(target_arch = "riscv64")]
580 #[path = "riscv64/prctl.rs"]
582 #[cfg(feature = "system")]
583 #[cfg(target_arch = "riscv64")]
584 #[path = "riscv64/system.rs"]
586 #[cfg(feature = "errno")]
587 #[cfg(target_arch = "s390x")]
588 #[path = "s390x/errno.rs"]
590 #[cfg(feature = "general")]
591 #[cfg(target_arch = "s390x")]
592 #[path = "s390x/general.rs"]
594 #[cfg(feature = "if_ether")]
595 #[cfg(target_arch = "s390x")]
596 #[path = "s390x/if_ether.rs"]
598 #[cfg(feature = "io_uring")]
599 #[cfg(target_arch = "s390x")]
600 #[path = "s390x/io_uring.rs"]
602 #[cfg(feature = "ioctl")]
603 #[cfg(target_arch = "s390x")]
604 #[path = "s390x/ioctl.rs"]
606 #[cfg(feature = "net")]
607 #[cfg(target_arch = "s390x")]
608 #[path = "s390x/net.rs"]
610 #[cfg(feature = "netlink")]
611 #[cfg(target_arch = "s390x")]
612 #[path = "s390x/netlink.rs"]
614 #[cfg(feature = "prctl")]
615 #[cfg(target_arch = "s390x")]
616 #[path = "s390x/prctl.rs"]
618 #[cfg(feature = "system")]
619 #[cfg(target_arch = "s390x")]
620 #[path = "s390x/system.rs"]
622 #[cfg(feature = "errno")]
623 #[cfg(target_arch = "sparc")]
624 #[path = "sparc/errno.rs"]
626 #[cfg(feature = "general")]
627 #[cfg(target_arch = "sparc")]
628 #[path = "sparc/general.rs"]
630 #[cfg(feature = "if_ether")]
631 #[cfg(target_arch = "sparc")]
632 #[path = "sparc/if_ether.rs"]
634 #[cfg(feature = "io_uring")]
635 #[cfg(target_arch = "sparc")]
636 #[path = "sparc/io_uring.rs"]
638 #[cfg(feature = "ioctl")]
639 #[cfg(target_arch = "sparc")]
640 #[path = "sparc/ioctl.rs"]
642 #[cfg(feature = "net")]
643 #[cfg(target_arch = "sparc")]
644 #[path = "sparc/net.rs"]
646 #[cfg(feature = "netlink")]
647 #[cfg(target_arch = "sparc")]
648 #[path = "sparc/netlink.rs"]
650 #[cfg(feature = "prctl")]
651 #[cfg(target_arch = "sparc")]
652 #[path = "sparc/prctl.rs"]
654 #[cfg(feature = "system")]
655 #[cfg(target_arch = "sparc")]
656 #[path = "sparc/system.rs"]
658 #[cfg(feature = "errno")]
659 #[cfg(target_arch = "sparc64")]
660 #[path = "sparc64/errno.rs"]
662 #[cfg(feature = "general")]
663 #[cfg(target_arch = "sparc64")]
664 #[path = "sparc64/general.rs"]
666 #[cfg(feature = "if_ether")]
667 #[cfg(target_arch = "sparc64")]
668 #[path = "sparc64/if_ether.rs"]
670 #[cfg(feature = "io_uring")]
671 #[cfg(target_arch = "sparc64")]
672 #[path = "sparc64/io_uring.rs"]
674 #[cfg(feature = "ioctl")]
675 #[cfg(target_arch = "sparc64")]
676 #[path = "sparc64/ioctl.rs"]
678 #[cfg(feature = "net")]
679 #[cfg(target_arch = "sparc64")]
680 #[path = "sparc64/net.rs"]
682 #[cfg(feature = "netlink")]
683 #[cfg(target_arch = "sparc64")]
684 #[path = "sparc64/netlink.rs"]
686 #[cfg(feature = "prctl")]
687 #[cfg(target_arch = "sparc64")]
688 #[path = "sparc64/prctl.rs"]
690 #[cfg(feature = "system")]
691 #[cfg(target_arch = "sparc64")]
692 #[path = "sparc64/system.rs"]
694 #[cfg(feature = "errno")]
695 #[cfg(target_arch = "x86")]
696 #[path = "x86/errno.rs"]
698 #[cfg(feature = "general")]
699 #[cfg(target_arch = "x86")]
700 #[path = "x86/general.rs"]
702 #[cfg(feature = "if_ether")]
703 #[cfg(target_arch = "x86")]
704 #[path = "x86/if_ether.rs"]
706 #[cfg(feature = "io_uring")]
707 #[cfg(target_arch = "x86")]
708 #[path = "x86/io_uring.rs"]
710 #[cfg(feature = "ioctl")]
711 #[cfg(target_arch = "x86")]
712 #[path = "x86/ioctl.rs"]
714 #[cfg(feature = "net")]
715 #[cfg(target_arch = "x86")]
716 #[path = "x86/net.rs"]
718 #[cfg(feature = "netlink")]
719 #[cfg(target_arch = "x86")]
720 #[path = "x86/netlink.rs"]
722 #[cfg(feature = "prctl")]
723 #[cfg(target_arch = "x86")]
724 #[path = "x86/prctl.rs"]
726 #[cfg(feature = "system")]
727 #[cfg(target_arch = "x86")]
728 #[path = "x86/system.rs"]
730 #[cfg(feature = "errno")]
731 #[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
732 #[path = "x86_64/errno.rs"]
734 #[cfg(feature = "general")]
735 #[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
736 #[path = "x86_64/general.rs"]
738 #[cfg(feature = "if_ether")]
739 #[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
740 #[path = "x86_64/if_ether.rs"]
742 #[cfg(feature = "io_uring")]
743 #[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
744 #[path = "x86_64/io_uring.rs"]
746 #[cfg(feature = "ioctl")]
747 #[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
748 #[path = "x86_64/ioctl.rs"]
750 #[cfg(feature = "net")]
751 #[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
752 #[path = "x86_64/net.rs"]
754 #[cfg(feature = "netlink")]
755 #[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
756 #[path = "x86_64/netlink.rs"]
758 #[cfg(feature = "prctl")]
759 #[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
760 #[path = "x86_64/prctl.rs"]
762 #[cfg(feature = "system")]
763 #[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
764 #[path = "x86_64/system.rs"]
766 #[cfg(feature = "errno")]
767 #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
768 #[path = "x32/errno.rs"]
770 #[cfg(feature = "general")]
771 #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
772 #[path = "x32/general.rs"]
774 #[cfg(feature = "if_ether")]
775 #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
776 #[path = "x32/if_ether.rs"]
778 #[cfg(feature = "io_uring")]
779 #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
780 #[path = "x32/io_uring.rs"]
782 #[cfg(feature = "ioctl")]
783 #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
784 #[path = "x32/ioctl.rs"]
786 #[cfg(feature = "net")]
787 #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
788 #[path = "x32/net.rs"]
790 #[cfg(feature = "netlink")]
791 #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
792 #[path = "x32/netlink.rs"]
794 #[cfg(feature = "prctl")]
795 #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
796 #[path = "x32/prctl.rs"]
798 #[cfg(feature = "system")]
799 #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
800 #[path = "x32/system.rs"]