From b5aa889f7fced8ba2cc1698ae9696d7bd0ca8ab5 Mon Sep 17 00:00:00 2001 From: garhve Date: Tue, 20 Dec 2022 11:07:35 +0800 Subject: remove compiled binary --- .../target/doc/src/libc/fixed_width_ints.rs.html | 200 - .../guessing_game/target/doc/src/libc/lib.rs.html | 316 - .../target/doc/src/libc/macros.rs.html | 688 -- .../target/doc/src/libc/unix/align.rs.html | 14 - .../src/libc/unix/linux_like/linux/align.rs.html | 302 - .../unix/linux_like/linux/arch/generic/mod.rs.html | 576 -- .../libc/unix/linux_like/linux/arch/mod.rs.html | 32 - .../libc/unix/linux_like/linux/gnu/align.rs.html | 28 - .../libc/unix/linux_like/linux/gnu/b64/mod.rs.html | 254 - .../linux_like/linux/gnu/b64/x86_64/align.rs.html | 50 - .../linux_like/linux/gnu/b64/x86_64/mod.rs.html | 1668 ---- .../linux/gnu/b64/x86_64/not_x32.rs.html | 902 -- .../src/libc/unix/linux_like/linux/gnu/mod.rs.html | 2820 ------ .../doc/src/libc/unix/linux_like/linux/mod.rs.html | 8986 -------------------- .../unix/linux_like/linux/non_exhaustive.rs.html | 20 - .../doc/src/libc/unix/linux_like/mod.rs.html | 3660 -------- .../target/doc/src/libc/unix/mod.rs.html | 3108 ------- 17 files changed, 23624 deletions(-) delete mode 100644 rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/fixed_width_ints.rs.html delete mode 100644 rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/lib.rs.html delete mode 100644 rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/macros.rs.html delete mode 100644 rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/align.rs.html delete mode 100644 rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/linux_like/linux/align.rs.html delete mode 100644 rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/linux_like/linux/arch/generic/mod.rs.html delete mode 100644 rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/linux_like/linux/arch/mod.rs.html delete mode 100644 rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/linux_like/linux/gnu/align.rs.html delete mode 100644 rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/linux_like/linux/gnu/b64/mod.rs.html delete mode 100644 rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/linux_like/linux/gnu/b64/x86_64/align.rs.html delete mode 100644 rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/linux_like/linux/gnu/b64/x86_64/mod.rs.html delete mode 100644 rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs.html delete mode 100644 rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/linux_like/linux/gnu/mod.rs.html delete mode 100644 rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/linux_like/linux/mod.rs.html delete mode 100644 rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/linux_like/linux/non_exhaustive.rs.html delete mode 100644 rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/linux_like/mod.rs.html delete mode 100644 rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/mod.rs.html (limited to 'rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc') diff --git a/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/fixed_width_ints.rs.html b/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/fixed_width_ints.rs.html deleted file mode 100644 index 4cf37e4..0000000 --- a/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/fixed_width_ints.rs.html +++ /dev/null @@ -1,200 +0,0 @@ -fixed_width_ints.rs - source
1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
-21
-22
-23
-24
-25
-26
-27
-28
-29
-30
-31
-32
-33
-34
-35
-36
-37
-38
-39
-40
-41
-42
-43
-44
-45
-46
-47
-48
-49
-50
-51
-52
-53
-54
-55
-56
-57
-58
-59
-60
-61
-62
-63
-64
-65
-66
-67
-68
-69
-70
-71
-72
-73
-74
-75
-76
-77
-78
-79
-80
-81
-82
-83
-84
-85
-86
-87
-88
-89
-90
-91
-92
-93
-94
-95
-96
-97
-98
-99
-
//! This module contains type aliases for C's fixed-width integer types .
-//!
-//! These aliases are deprecated: use the Rust types instead.
-
-#[deprecated(since = "0.2.55", note = "Use i8 instead.")]
-pub type int8_t = i8;
-#[deprecated(since = "0.2.55", note = "Use i16 instead.")]
-pub type int16_t = i16;
-#[deprecated(since = "0.2.55", note = "Use i32 instead.")]
-pub type int32_t = i32;
-#[deprecated(since = "0.2.55", note = "Use i64 instead.")]
-pub type int64_t = i64;
-#[deprecated(since = "0.2.55", note = "Use u8 instead.")]
-pub type uint8_t = u8;
-#[deprecated(since = "0.2.55", note = "Use u16 instead.")]
-pub type uint16_t = u16;
-#[deprecated(since = "0.2.55", note = "Use u32 instead.")]
-pub type uint32_t = u32;
-#[deprecated(since = "0.2.55", note = "Use u64 instead.")]
-pub type uint64_t = u64;
-
-cfg_if! {
-    if #[cfg(all(libc_int128, target_arch = "aarch64", not(target_os = "windows")))] {
-        // This introduces partial support for FFI with __int128 and
-        // equivalent types on platforms where Rust's definition is validated
-        // to match the standard C ABI of that platform.
-        //
-        // Rust does not guarantee u128/i128 are sound for FFI, and its
-        // definitions are in fact known to be incompatible. [0]
-        //
-        // However these problems aren't fundamental, and are just platform
-        // inconsistencies. Specifically at the time of this writing:
-        //
-        // * For x64 SysV ABIs (everything but Windows), the types are underaligned.
-        // * For all Windows ABIs, Microsoft doesn't actually officially define __int128,
-        //   and as a result different implementations don't actually agree on its ABI.
-        //
-        // But on the other major aarch64 platforms (android, linux, ios, macos) we have
-        // validated that rustc has the right ABI for these types. This is important because
-        // aarch64 uses these types in some fundamental OS types like user_fpsimd_struct,
-        // which represents saved simd registers.
-        //
-        // Any API which uses these types will need to `#[ignore(improper_ctypes)]`
-        // until the upstream rust issue is resolved, but this at least lets us make
-        // progress on platforms where this type is important.
-        //
-        // The list of supported architectures and OSes is intentionally very restricted,
-        // as careful work needs to be done to verify that a particular platform
-        // has a conformant ABI.
-        //
-        // [0]: https://github.com/rust-lang/rust/issues/54341
-
-        /// C `__int128` (a GCC extension that's part of many ABIs)
-        pub type __int128 = i128;
-        /// C `unsigned __int128` (a GCC extension that's part of many ABIs)
-        pub type __uint128 = u128;
-        /// C __int128_t (alternate name for [__int128][])
-        pub type __int128_t = i128;
-        /// C __uint128_t (alternate name for [__uint128][])
-        pub type __uint128_t = u128;
-
-        cfg_if! {
-            if #[cfg(libc_underscore_const_names)] {
-                macro_rules! static_assert_eq {
-                    ($a:expr, $b:expr) => {
-                        const _: [(); $a] = [(); $b];
-                    };
-                }
-
-                // NOTE: if you add more platforms to here, you may need to cfg
-                // these consts. They should always match the platform's values
-                // for `sizeof(__int128)` and `_Alignof(__int128)`.
-                const _SIZE_128: usize = 16;
-                const _ALIGN_128: usize = 16;
-
-                // Since Rust doesn't officially guarantee that these types
-                // have compatible ABIs, we const assert that these values have the
-                // known size/align of the target platform's libc. If rustc ever
-                // tries to regress things, it will cause a compilation error.
-                //
-                // This isn't a bullet-proof solution because e.g. it doesn't
-                // catch the fact that llvm and gcc disagree on how x64 __int128
-                // is actually *passed* on the stack (clang underaligns it for
-                // the same reason that rustc *never* properly aligns it).
-                static_assert_eq!(core::mem::size_of::<__int128>(), _SIZE_128);
-                static_assert_eq!(core::mem::align_of::<__int128>(), _ALIGN_128);
-
-                static_assert_eq!(core::mem::size_of::<__uint128>(), _SIZE_128);
-                static_assert_eq!(core::mem::align_of::<__uint128>(), _ALIGN_128);
-
-                static_assert_eq!(core::mem::size_of::<__int128_t>(), _SIZE_128);
-                static_assert_eq!(core::mem::align_of::<__int128_t>(), _ALIGN_128);
-
-                static_assert_eq!(core::mem::size_of::<__uint128_t>(), _SIZE_128);
-                static_assert_eq!(core::mem::align_of::<__uint128_t>(), _ALIGN_128);
-            }
-        }
-    }
-}
-
-
\ No newline at end of file diff --git a/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/lib.rs.html b/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/lib.rs.html deleted file mode 100644 index b46015a..0000000 --- a/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/lib.rs.html +++ /dev/null @@ -1,316 +0,0 @@ -lib.rs - source
1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
-21
-22
-23
-24
-25
-26
-27
-28
-29
-30
-31
-32
-33
-34
-35
-36
-37
-38
-39
-40
-41
-42
-43
-44
-45
-46
-47
-48
-49
-50
-51
-52
-53
-54
-55
-56
-57
-58
-59
-60
-61
-62
-63
-64
-65
-66
-67
-68
-69
-70
-71
-72
-73
-74
-75
-76
-77
-78
-79
-80
-81
-82
-83
-84
-85
-86
-87
-88
-89
-90
-91
-92
-93
-94
-95
-96
-97
-98
-99
-100
-101
-102
-103
-104
-105
-106
-107
-108
-109
-110
-111
-112
-113
-114
-115
-116
-117
-118
-119
-120
-121
-122
-123
-124
-125
-126
-127
-128
-129
-130
-131
-132
-133
-134
-135
-136
-137
-138
-139
-140
-141
-142
-143
-144
-145
-146
-147
-148
-149
-150
-151
-152
-153
-154
-155
-156
-157
-
//! libc - Raw FFI bindings to platforms' system libraries
-//!
-//! [Documentation for other platforms][pd].
-//!
-//! [pd]: https://rust-lang.github.io/libc/#platform-specific-documentation
-#![crate_name = "libc"]
-#![crate_type = "rlib"]
-#![allow(
-    renamed_and_removed_lints, // Keep this order.
-    unknown_lints, // Keep this order.
-    bad_style,
-    overflowing_literals,
-    improper_ctypes,
-    // This lint is renamed but we run CI for old stable rustc so should be here.
-    redundant_semicolon,
-    redundant_semicolons,
-    unused_macros,
-    unused_macro_rules,
-)]
-#![cfg_attr(libc_deny_warnings, deny(warnings))]
-// Attributes needed when building as part of the standard library
-#![cfg_attr(feature = "rustc-dep-of-std", feature(link_cfg, no_core))]
-#![cfg_attr(libc_thread_local, feature(thread_local))]
-// Enable extra lints:
-#![cfg_attr(feature = "extra_traits", deny(missing_debug_implementations))]
-#![deny(missing_copy_implementations, safe_packed_borrows)]
-#![cfg_attr(not(feature = "rustc-dep-of-std"), no_std)]
-#![cfg_attr(feature = "rustc-dep-of-std", no_core)]
-#![cfg_attr(libc_const_extern_fn_unstable, feature(const_extern_fn))]
-
-#[macro_use]
-mod macros;
-
-cfg_if! {
-    if #[cfg(feature = "rustc-dep-of-std")] {
-        extern crate rustc_std_workspace_core as core;
-        #[allow(unused_imports)]
-        use core::iter;
-        #[allow(unused_imports)]
-        use core::ops;
-        #[allow(unused_imports)]
-        use core::option;
-    }
-}
-
-cfg_if! {
-    if #[cfg(libc_priv_mod_use)] {
-        #[cfg(libc_core_cvoid)]
-        #[allow(unused_imports)]
-        use core::ffi;
-        #[allow(unused_imports)]
-        use core::fmt;
-        #[allow(unused_imports)]
-        use core::hash;
-        #[allow(unused_imports)]
-        use core::num;
-        #[allow(unused_imports)]
-        use core::mem;
-        #[doc(hidden)]
-        #[allow(unused_imports)]
-        use core::clone::Clone;
-        #[doc(hidden)]
-        #[allow(unused_imports)]
-        use core::marker::{Copy, Send, Sync};
-        #[doc(hidden)]
-        #[allow(unused_imports)]
-        use core::option::Option;
-    } else {
-        #[doc(hidden)]
-        #[allow(unused_imports)]
-        pub use core::fmt;
-        #[doc(hidden)]
-        #[allow(unused_imports)]
-        pub use core::hash;
-        #[doc(hidden)]
-        #[allow(unused_imports)]
-        pub use core::num;
-        #[doc(hidden)]
-        #[allow(unused_imports)]
-        pub use core::mem;
-        #[doc(hidden)]
-        #[allow(unused_imports)]
-        pub use core::clone::Clone;
-        #[doc(hidden)]
-        #[allow(unused_imports)]
-        pub use core::marker::{Copy, Send, Sync};
-        #[doc(hidden)]
-        #[allow(unused_imports)]
-        pub use core::option::Option;
-    }
-}
-
-cfg_if! {
-    if #[cfg(windows)] {
-        mod fixed_width_ints;
-        pub use fixed_width_ints::*;
-
-        mod windows;
-        pub use windows::*;
-    } else if #[cfg(target_os = "fuchsia")] {
-        mod fixed_width_ints;
-        pub use fixed_width_ints::*;
-
-        mod fuchsia;
-        pub use fuchsia::*;
-    } else if #[cfg(target_os = "switch")] {
-        mod fixed_width_ints;
-        pub use fixed_width_ints::*;
-
-        mod switch;
-        pub use switch::*;
-    } else if #[cfg(target_os = "psp")] {
-        mod fixed_width_ints;
-        pub use fixed_width_ints::*;
-
-        mod psp;
-        pub use psp::*;
-    } else if #[cfg(target_os = "vxworks")] {
-        mod fixed_width_ints;
-        pub use fixed_width_ints::*;
-
-        mod vxworks;
-        pub use vxworks::*;
-    } else if #[cfg(target_os = "solid_asp3")] {
-        mod fixed_width_ints;
-        pub use fixed_width_ints::*;
-
-        mod solid;
-        pub use solid::*;
-    } else if #[cfg(unix)] {
-        mod fixed_width_ints;
-        pub use fixed_width_ints::*;
-
-        mod unix;
-        pub use unix::*;
-    } else if #[cfg(target_os = "hermit")] {
-        mod fixed_width_ints;
-        pub use fixed_width_ints::*;
-
-        mod hermit;
-        pub use hermit::*;
-    } else if #[cfg(all(target_env = "sgx", target_vendor = "fortanix"))] {
-        mod fixed_width_ints;
-        pub use fixed_width_ints::*;
-
-        mod sgx;
-        pub use sgx::*;
-    } else if #[cfg(any(target_env = "wasi", target_os = "wasi"))] {
-        mod fixed_width_ints;
-        pub use fixed_width_ints::*;
-
-        mod wasi;
-        pub use wasi::*;
-    } else {
-        // non-supported targets: empty...
-    }
-}
-
-
\ No newline at end of file diff --git a/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/macros.rs.html b/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/macros.rs.html deleted file mode 100644 index 6abaca9..0000000 --- a/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/macros.rs.html +++ /dev/null @@ -1,688 +0,0 @@ -macros.rs - source
1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
-21
-22
-23
-24
-25
-26
-27
-28
-29
-30
-31
-32
-33
-34
-35
-36
-37
-38
-39
-40
-41
-42
-43
-44
-45
-46
-47
-48
-49
-50
-51
-52
-53
-54
-55
-56
-57
-58
-59
-60
-61
-62
-63
-64
-65
-66
-67
-68
-69
-70
-71
-72
-73
-74
-75
-76
-77
-78
-79
-80
-81
-82
-83
-84
-85
-86
-87
-88
-89
-90
-91
-92
-93
-94
-95
-96
-97
-98
-99
-100
-101
-102
-103
-104
-105
-106
-107
-108
-109
-110
-111
-112
-113
-114
-115
-116
-117
-118
-119
-120
-121
-122
-123
-124
-125
-126
-127
-128
-129
-130
-131
-132
-133
-134
-135
-136
-137
-138
-139
-140
-141
-142
-143
-144
-145
-146
-147
-148
-149
-150
-151
-152
-153
-154
-155
-156
-157
-158
-159
-160
-161
-162
-163
-164
-165
-166
-167
-168
-169
-170
-171
-172
-173
-174
-175
-176
-177
-178
-179
-180
-181
-182
-183
-184
-185
-186
-187
-188
-189
-190
-191
-192
-193
-194
-195
-196
-197
-198
-199
-200
-201
-202
-203
-204
-205
-206
-207
-208
-209
-210
-211
-212
-213
-214
-215
-216
-217
-218
-219
-220
-221
-222
-223
-224
-225
-226
-227
-228
-229
-230
-231
-232
-233
-234
-235
-236
-237
-238
-239
-240
-241
-242
-243
-244
-245
-246
-247
-248
-249
-250
-251
-252
-253
-254
-255
-256
-257
-258
-259
-260
-261
-262
-263
-264
-265
-266
-267
-268
-269
-270
-271
-272
-273
-274
-275
-276
-277
-278
-279
-280
-281
-282
-283
-284
-285
-286
-287
-288
-289
-290
-291
-292
-293
-294
-295
-296
-297
-298
-299
-300
-301
-302
-303
-304
-305
-306
-307
-308
-309
-310
-311
-312
-313
-314
-315
-316
-317
-318
-319
-320
-321
-322
-323
-324
-325
-326
-327
-328
-329
-330
-331
-332
-333
-334
-335
-336
-337
-338
-339
-340
-341
-342
-343
-
/// A macro for defining #[cfg] if-else statements.
-///
-/// This is similar to the `if/elif` C preprocessor macro by allowing definition
-/// of a cascade of `#[cfg]` cases, emitting the implementation which matches
-/// first.
-///
-/// This allows you to conveniently provide a long list #[cfg]'d blocks of code
-/// without having to rewrite each clause multiple times.
-macro_rules! cfg_if {
-    // match if/else chains with a final `else`
-    ($(
-        if #[cfg($($meta:meta),*)] { $($it:item)* }
-    ) else * else {
-        $($it2:item)*
-    }) => {
-        cfg_if! {
-            @__items
-            () ;
-            $( ( ($($meta),*) ($($it)*) ), )*
-            ( () ($($it2)*) ),
-        }
-    };
-
-    // match if/else chains lacking a final `else`
-    (
-        if #[cfg($($i_met:meta),*)] { $($i_it:item)* }
-        $(
-            else if #[cfg($($e_met:meta),*)] { $($e_it:item)* }
-        )*
-    ) => {
-        cfg_if! {
-            @__items
-            () ;
-            ( ($($i_met),*) ($($i_it)*) ),
-            $( ( ($($e_met),*) ($($e_it)*) ), )*
-            ( () () ),
-        }
-    };
-
-    // Internal and recursive macro to emit all the items
-    //
-    // Collects all the negated `cfg`s in a list at the beginning and after the
-    // semicolon is all the remaining items
-    (@__items ($($not:meta,)*) ; ) => {};
-    (@__items ($($not:meta,)*) ; ( ($($m:meta),*) ($($it:item)*) ),
-     $($rest:tt)*) => {
-        // Emit all items within one block, applying an appropriate #[cfg]. The
-        // #[cfg] will require all `$m` matchers specified and must also negate
-        // all previous matchers.
-        cfg_if! { @__apply cfg(all($($m,)* not(any($($not),*)))), $($it)* }
-
-        // Recurse to emit all other items in `$rest`, and when we do so add all
-        // our `$m` matchers to the list of `$not` matchers as future emissions
-        // will have to negate everything we just matched as well.
-        cfg_if! { @__items ($($not,)* $($m,)*) ; $($rest)* }
-    };
-
-    // Internal macro to Apply a cfg attribute to a list of items
-    (@__apply $m:meta, $($it:item)*) => {
-        $(#[$m] $it)*
-    };
-}
-
-macro_rules! s {
-    ($($(#[$attr:meta])* pub $t:ident $i:ident { $($field:tt)* })*) => ($(
-        s!(it: $(#[$attr])* pub $t $i { $($field)* });
-    )*);
-    (it: $(#[$attr:meta])* pub union $i:ident { $($field:tt)* }) => (
-        compile_error!("unions cannot derive extra traits, use s_no_extra_traits instead");
-    );
-    (it: $(#[$attr:meta])* pub struct $i:ident { $($field:tt)* }) => (
-        __item! {
-            #[repr(C)]
-            #[cfg_attr(feature = "extra_traits", derive(Debug, Eq, Hash, PartialEq))]
-            #[allow(deprecated)]
-            $(#[$attr])*
-            pub struct $i { $($field)* }
-        }
-        #[allow(deprecated)]
-        impl ::Copy for $i {}
-        #[allow(deprecated)]
-        impl ::Clone for $i {
-            fn clone(&self) -> $i { *self }
-        }
-    );
-}
-
-macro_rules! s_no_extra_traits {
-    ($($(#[$attr:meta])* pub $t:ident $i:ident { $($field:tt)* })*) => ($(
-        s_no_extra_traits!(it: $(#[$attr])* pub $t $i { $($field)* });
-    )*);
-    (it: $(#[$attr:meta])* pub union $i:ident { $($field:tt)* }) => (
-        cfg_if! {
-            if #[cfg(libc_union)] {
-                __item! {
-                    #[repr(C)]
-                    $(#[$attr])*
-                    pub union $i { $($field)* }
-                }
-
-                impl ::Copy for $i {}
-                impl ::Clone for $i {
-                    fn clone(&self) -> $i { *self }
-                }
-            }
-        }
-    );
-    (it: $(#[$attr:meta])* pub struct $i:ident { $($field:tt)* }) => (
-        __item! {
-            #[repr(C)]
-            $(#[$attr])*
-            pub struct $i { $($field)* }
-        }
-        #[allow(deprecated)]
-        impl ::Copy for $i {}
-        #[allow(deprecated)]
-        impl ::Clone for $i {
-            fn clone(&self) -> $i { *self }
-        }
-    );
-}
-
-macro_rules! e {
-    ($($(#[$attr:meta])* pub enum $i:ident { $($field:tt)* })*) => ($(
-        __item! {
-            #[cfg_attr(feature = "extra_traits", derive(Debug, Eq, Hash, PartialEq))]
-            $(#[$attr])*
-            pub enum $i { $($field)* }
-        }
-        impl ::Copy for $i {}
-        impl ::Clone for $i {
-            fn clone(&self) -> $i { *self }
-        }
-    )*);
-}
-
-macro_rules! s_paren {
-    ($($(#[$attr:meta])* pub struct $i:ident ( $($field:tt)* ); )* ) => ($(
-        __item! {
-            #[cfg_attr(feature = "extra_traits", derive(Debug, Eq, Hash, PartialEq))]
-            $(#[$attr])*
-            pub struct $i ( $($field)* );
-        }
-        impl ::Copy for $i {}
-        impl ::Clone for $i {
-            fn clone(&self) -> $i { *self }
-        }
-    )*);
-}
-
-// This is a pretty horrible hack to allow us to conditionally mark
-// some functions as 'const', without requiring users of this macro
-// to care about the "const-extern-fn" feature.
-//
-// When 'const-extern-fn' is enabled, we emit the captured 'const' keyword
-// in the expanded function.
-//
-// When 'const-extern-fn' is disabled, we always emit a plain 'pub unsafe extern fn'.
-// Note that the expression matched by the macro is exactly the same - this allows
-// users of this macro to work whether or not 'const-extern-fn' is enabled
-//
-// Unfortunately, we need to duplicate most of this macro between the 'cfg_if' blocks.
-// This is because 'const unsafe extern fn' won't even parse on older compilers,
-// so we need to avoid emitting it at all of 'const-extern-fn'.
-//
-// Specifically, moving the 'cfg_if' into the macro body will *not* work.
-// Doing so would cause the '#[cfg(feature = "const-extern-fn")]' to be emitted
-// into user code. The 'cfg' gate will not stop Rust from trying to parse the
-// 'pub const unsafe extern fn', so users would get a compiler error even when
-// the 'const-extern-fn' feature is disabled
-//
-// Note that users of this macro need to place 'const' in a weird position
-// (after the closing ')' for the arguments, but before the return type).
-// This was the only way I could satisfy the following two requirements:
-// 1. Avoid ambiguity errors from 'macro_rules!' (which happen when writing '$foo:ident fn'
-// 2. Allow users of this macro to mix 'pub fn foo' and 'pub const fn bar' within the same
-// 'f!' block
-cfg_if! {
-    if #[cfg(libc_const_extern_fn)] {
-        macro_rules! f {
-            ($($(#[$attr:meta])* pub $({$constness:ident})* fn $i:ident(
-                        $($arg:ident: $argty:ty),*
-            ) -> $ret:ty {
-                $($body:stmt);*
-            })*) => ($(
-                #[inline]
-                $(#[$attr])*
-                pub $($constness)* unsafe extern fn $i($($arg: $argty),*
-                ) -> $ret {
-                    $($body);*
-                }
-            )*)
-        }
-
-        macro_rules! safe_f {
-            ($($(#[$attr:meta])* pub $({$constness:ident})* fn $i:ident(
-                        $($arg:ident: $argty:ty),*
-            ) -> $ret:ty {
-                $($body:stmt);*
-            })*) => ($(
-                #[inline]
-                $(#[$attr])*
-                pub $($constness)* extern fn $i($($arg: $argty),*
-                ) -> $ret {
-                    $($body);*
-                }
-            )*)
-        }
-
-        macro_rules! const_fn {
-            ($($(#[$attr:meta])* $({$constness:ident})* fn $i:ident(
-                        $($arg:ident: $argty:ty),*
-            ) -> $ret:ty {
-                $($body:stmt);*
-            })*) => ($(
-                #[inline]
-                $(#[$attr])*
-                $($constness)* fn $i($($arg: $argty),*
-                ) -> $ret {
-                    $($body);*
-                }
-            )*)
-        }
-
-    } else {
-        macro_rules! f {
-            ($($(#[$attr:meta])* pub $({$constness:ident})* fn $i:ident(
-                        $($arg:ident: $argty:ty),*
-            ) -> $ret:ty {
-                $($body:stmt);*
-            })*) => ($(
-                #[inline]
-                $(#[$attr])*
-                pub unsafe extern fn $i($($arg: $argty),*
-                ) -> $ret {
-                    $($body);*
-                }
-            )*)
-        }
-
-        macro_rules! safe_f {
-            ($($(#[$attr:meta])* pub $({$constness:ident})* fn $i:ident(
-                        $($arg:ident: $argty:ty),*
-            ) -> $ret:ty {
-                $($body:stmt);*
-            })*) => ($(
-                #[inline]
-                $(#[$attr])*
-                pub extern fn $i($($arg: $argty),*
-                ) -> $ret {
-                    $($body);*
-                }
-            )*)
-        }
-
-        macro_rules! const_fn {
-            ($($(#[$attr:meta])* $({$constness:ident})* fn $i:ident(
-                        $($arg:ident: $argty:ty),*
-            ) -> $ret:ty {
-                $($body:stmt);*
-            })*) => ($(
-                #[inline]
-                $(#[$attr])*
-                fn $i($($arg: $argty),*
-                ) -> $ret {
-                    $($body);*
-                }
-            )*)
-        }
-    }
-}
-
-macro_rules! __item {
-    ($i:item) => {
-        $i
-    };
-}
-
-macro_rules! align_const {
-    ($($(#[$attr:meta])*
-       pub const $name:ident : $t1:ty
-       = $t2:ident { $($field:tt)* };)*) => ($(
-        #[cfg(libc_align)]
-        $(#[$attr])*
-        pub const $name : $t1 = $t2 {
-            $($field)*
-        };
-        #[cfg(not(libc_align))]
-        $(#[$attr])*
-        pub const $name : $t1 = $t2 {
-            $($field)*
-            __align: [],
-        };
-    )*)
-}
-
-// This macro is used to deprecate items that should be accessed via the mach2 crate
-macro_rules! deprecated_mach {
-    (pub const $id:ident: $ty:ty = $expr:expr;) => {
-        #[deprecated(
-            since = "0.2.55",
-            note = "Use the `mach2` crate instead",
-        )]
-        #[allow(deprecated)]
-        pub const $id: $ty = $expr;
-    };
-    ($(pub const $id:ident: $ty:ty = $expr:expr;)*) => {
-        $(
-            deprecated_mach!(
-                pub const $id: $ty = $expr;
-            );
-        )*
-    };
-    (pub type $id:ident = $ty:ty;) => {
-        #[deprecated(
-            since = "0.2.55",
-            note = "Use the `mach2` crate instead",
-        )]
-        #[allow(deprecated)]
-        pub type $id = $ty;
-    };
-    ($(pub type $id:ident = $ty:ty;)*) => {
-        $(
-            deprecated_mach!(
-                pub type $id = $ty;
-            );
-        )*
-    }
-}
-
-#[cfg(not(libc_ptr_addr_of))]
-macro_rules! ptr_addr_of {
-    ($place:expr) => {
-        &$place
-    };
-}
-
-#[cfg(libc_ptr_addr_of)]
-macro_rules! ptr_addr_of {
-    ($place:expr) => {
-        ::core::ptr::addr_of!($place)
-    };
-}
-
-
\ No newline at end of file diff --git a/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/align.rs.html b/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/align.rs.html deleted file mode 100644 index 6e6b0c3..0000000 --- a/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/align.rs.html +++ /dev/null @@ -1,14 +0,0 @@ -align.rs - source
1
-2
-3
-4
-5
-6
-
s! {
-    #[repr(align(4))]
-    pub struct in6_addr {
-        pub s6_addr: [u8; 16],
-    }
-}
-
-
\ No newline at end of file diff --git a/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/linux_like/linux/align.rs.html b/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/linux_like/linux/align.rs.html deleted file mode 100644 index fea6f40..0000000 --- a/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/linux_like/linux/align.rs.html +++ /dev/null @@ -1,302 +0,0 @@ -align.rs - source
1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
-21
-22
-23
-24
-25
-26
-27
-28
-29
-30
-31
-32
-33
-34
-35
-36
-37
-38
-39
-40
-41
-42
-43
-44
-45
-46
-47
-48
-49
-50
-51
-52
-53
-54
-55
-56
-57
-58
-59
-60
-61
-62
-63
-64
-65
-66
-67
-68
-69
-70
-71
-72
-73
-74
-75
-76
-77
-78
-79
-80
-81
-82
-83
-84
-85
-86
-87
-88
-89
-90
-91
-92
-93
-94
-95
-96
-97
-98
-99
-100
-101
-102
-103
-104
-105
-106
-107
-108
-109
-110
-111
-112
-113
-114
-115
-116
-117
-118
-119
-120
-121
-122
-123
-124
-125
-126
-127
-128
-129
-130
-131
-132
-133
-134
-135
-136
-137
-138
-139
-140
-141
-142
-143
-144
-145
-146
-147
-148
-149
-150
-
macro_rules! expand_align {
-    () => {
-        s! {
-            #[cfg_attr(any(target_pointer_width = "32",
-                           target_arch = "x86_64",
-                           target_arch = "powerpc64",
-                           target_arch = "mips64",
-                           target_arch = "s390x",
-                           target_arch = "sparc64",
-                           target_arch = "aarch64",
-                           target_arch = "riscv64",
-                           target_arch = "riscv32",
-                           target_arch = "loongarch64"),
-                       repr(align(4)))]
-            #[cfg_attr(not(any(target_pointer_width = "32",
-                               target_arch = "x86_64",
-                               target_arch = "powerpc64",
-                               target_arch = "mips64",
-                               target_arch = "s390x",
-                               target_arch = "sparc64",
-                               target_arch = "aarch64",
-                               target_arch = "riscv64",
-                               target_arch = "riscv32",
-                               target_arch = "loongarch64")),
-                       repr(align(8)))]
-            pub struct pthread_mutexattr_t {
-                #[doc(hidden)]
-                size: [u8; ::__SIZEOF_PTHREAD_MUTEXATTR_T],
-            }
-
-            #[cfg_attr(any(target_env = "musl", target_pointer_width = "32"),
-                       repr(align(4)))]
-            #[cfg_attr(all(not(target_env = "musl"),
-                           target_pointer_width = "64"),
-                       repr(align(8)))]
-            pub struct pthread_rwlockattr_t {
-                #[doc(hidden)]
-                size: [u8; ::__SIZEOF_PTHREAD_RWLOCKATTR_T],
-            }
-
-            #[repr(align(4))]
-            pub struct pthread_condattr_t {
-                #[doc(hidden)]
-                size: [u8; ::__SIZEOF_PTHREAD_CONDATTR_T],
-            }
-
-            #[repr(align(8))]
-            pub struct fanotify_event_metadata {
-                pub event_len: __u32,
-                pub vers: __u8,
-                pub reserved: __u8,
-                pub metadata_len: __u16,
-                pub mask: __u64,
-                pub fd: ::c_int,
-                pub pid: ::c_int,
-            }
-        }
-
-        s_no_extra_traits! {
-            #[cfg_attr(all(target_env = "musl",
-                           target_pointer_width = "32"),
-                       repr(align(4)))]
-            #[cfg_attr(all(target_env = "musl",
-                           target_pointer_width = "64"),
-                       repr(align(8)))]
-            #[cfg_attr(all(not(target_env = "musl"),
-                           target_arch = "x86"),
-                       repr(align(4)))]
-            #[cfg_attr(all(not(target_env = "musl"),
-                           not(target_arch = "x86")),
-                       repr(align(8)))]
-            pub struct pthread_cond_t {
-                #[doc(hidden)]
-                size: [u8; ::__SIZEOF_PTHREAD_COND_T],
-            }
-
-            #[cfg_attr(all(target_pointer_width = "32",
-                           any(target_arch = "mips",
-                               target_arch = "arm",
-                               target_arch = "hexagon",
-                               target_arch = "m68k",
-                               target_arch = "powerpc",
-                               target_arch = "sparc",
-                               target_arch = "x86_64",
-                               target_arch = "x86")),
-                       repr(align(4)))]
-            #[cfg_attr(any(target_pointer_width = "64",
-                           not(any(target_arch = "mips",
-                                   target_arch = "arm",
-                                   target_arch = "hexagon",
-                                   target_arch = "m68k",
-                                   target_arch = "powerpc",
-                                   target_arch = "sparc",
-                                   target_arch = "x86_64",
-                                   target_arch = "x86"))),
-                       repr(align(8)))]
-            pub struct pthread_mutex_t {
-                #[doc(hidden)]
-                size: [u8; ::__SIZEOF_PTHREAD_MUTEX_T],
-            }
-
-            #[cfg_attr(all(target_pointer_width = "32",
-                           any(target_arch = "mips",
-                               target_arch = "arm",
-                               target_arch = "hexagon",
-                               target_arch = "m68k",
-                               target_arch = "powerpc",
-                               target_arch = "sparc",
-                               target_arch = "x86_64",
-                               target_arch = "x86")),
-                       repr(align(4)))]
-            #[cfg_attr(any(target_pointer_width = "64",
-                           not(any(target_arch = "mips",
-                                   target_arch = "arm",
-                                   target_arch = "hexagon",
-                                   target_arch = "m68k",
-                                   target_arch = "powerpc",
-                                   target_arch = "sparc",
-                                   target_arch = "x86_64",
-                                   target_arch = "x86"))),
-                       repr(align(8)))]
-            pub struct pthread_rwlock_t {
-                size: [u8; ::__SIZEOF_PTHREAD_RWLOCK_T],
-            }
-
-            // linux/can.h
-            #[repr(align(8))]
-            #[allow(missing_debug_implementations)]
-            pub struct can_frame {
-                pub can_id: canid_t,
-                pub can_dlc: u8,
-                __pad: u8,
-                __res0: u8,
-                __res1: u8,
-                pub data: [u8; CAN_MAX_DLEN],
-            }
-
-            #[repr(align(8))]
-            #[allow(missing_debug_implementations)]
-            pub struct canfd_frame {
-                pub can_id: canid_t,
-                pub len: u8,
-                pub flags: u8,
-                __res0: u8,
-                __res1: u8,
-                pub data: [u8; CANFD_MAX_DLEN],
-            }
-        }
-    };
-}
-
-
\ No newline at end of file diff --git a/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/linux_like/linux/arch/generic/mod.rs.html b/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/linux_like/linux/arch/generic/mod.rs.html deleted file mode 100644 index d4f39bd..0000000 --- a/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/linux_like/linux/arch/generic/mod.rs.html +++ /dev/null @@ -1,576 +0,0 @@ -mod.rs - source
1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
-21
-22
-23
-24
-25
-26
-27
-28
-29
-30
-31
-32
-33
-34
-35
-36
-37
-38
-39
-40
-41
-42
-43
-44
-45
-46
-47
-48
-49
-50
-51
-52
-53
-54
-55
-56
-57
-58
-59
-60
-61
-62
-63
-64
-65
-66
-67
-68
-69
-70
-71
-72
-73
-74
-75
-76
-77
-78
-79
-80
-81
-82
-83
-84
-85
-86
-87
-88
-89
-90
-91
-92
-93
-94
-95
-96
-97
-98
-99
-100
-101
-102
-103
-104
-105
-106
-107
-108
-109
-110
-111
-112
-113
-114
-115
-116
-117
-118
-119
-120
-121
-122
-123
-124
-125
-126
-127
-128
-129
-130
-131
-132
-133
-134
-135
-136
-137
-138
-139
-140
-141
-142
-143
-144
-145
-146
-147
-148
-149
-150
-151
-152
-153
-154
-155
-156
-157
-158
-159
-160
-161
-162
-163
-164
-165
-166
-167
-168
-169
-170
-171
-172
-173
-174
-175
-176
-177
-178
-179
-180
-181
-182
-183
-184
-185
-186
-187
-188
-189
-190
-191
-192
-193
-194
-195
-196
-197
-198
-199
-200
-201
-202
-203
-204
-205
-206
-207
-208
-209
-210
-211
-212
-213
-214
-215
-216
-217
-218
-219
-220
-221
-222
-223
-224
-225
-226
-227
-228
-229
-230
-231
-232
-233
-234
-235
-236
-237
-238
-239
-240
-241
-242
-243
-244
-245
-246
-247
-248
-249
-250
-251
-252
-253
-254
-255
-256
-257
-258
-259
-260
-261
-262
-263
-264
-265
-266
-267
-268
-269
-270
-271
-272
-273
-274
-275
-276
-277
-278
-279
-280
-281
-282
-283
-284
-285
-286
-287
-
s! {
-    pub struct termios2 {
-        pub c_iflag: ::tcflag_t,
-        pub c_oflag: ::tcflag_t,
-        pub c_cflag: ::tcflag_t,
-        pub c_lflag: ::tcflag_t,
-        pub c_line: ::cc_t,
-        pub c_cc: [::cc_t; 19],
-        pub c_ispeed: ::speed_t,
-        pub c_ospeed: ::speed_t,
-    }
-}
-
-// include/uapi/asm-generic/socket.h
-// arch/alpha/include/uapi/asm/socket.h
-// tools/include/uapi/asm-generic/socket.h
-// arch/mips/include/uapi/asm/socket.h
-pub const SOL_SOCKET: ::c_int = 1;
-
-// Defined in unix/linux_like/mod.rs
-// pub const SO_DEBUG: ::c_int = 1;
-pub const SO_REUSEADDR: ::c_int = 2;
-pub const SO_TYPE: ::c_int = 3;
-pub const SO_ERROR: ::c_int = 4;
-pub const SO_DONTROUTE: ::c_int = 5;
-pub const SO_BROADCAST: ::c_int = 6;
-pub const SO_SNDBUF: ::c_int = 7;
-pub const SO_RCVBUF: ::c_int = 8;
-pub const SO_KEEPALIVE: ::c_int = 9;
-pub const SO_OOBINLINE: ::c_int = 10;
-pub const SO_NO_CHECK: ::c_int = 11;
-pub const SO_PRIORITY: ::c_int = 12;
-pub const SO_LINGER: ::c_int = 13;
-pub const SO_BSDCOMPAT: ::c_int = 14;
-pub const SO_REUSEPORT: ::c_int = 15;
-pub const SO_PASSCRED: ::c_int = 16;
-pub const SO_PEERCRED: ::c_int = 17;
-pub const SO_RCVLOWAT: ::c_int = 18;
-pub const SO_SNDLOWAT: ::c_int = 19;
-pub const SO_RCVTIMEO: ::c_int = 20;
-pub const SO_SNDTIMEO: ::c_int = 21;
-// pub const SO_RCVTIMEO_OLD: ::c_int = 20;
-// pub const SO_SNDTIMEO_OLD: ::c_int = 21;
-pub const SO_SECURITY_AUTHENTICATION: ::c_int = 22;
-pub const SO_SECURITY_ENCRYPTION_TRANSPORT: ::c_int = 23;
-pub const SO_SECURITY_ENCRYPTION_NETWORK: ::c_int = 24;
-pub const SO_BINDTODEVICE: ::c_int = 25;
-pub const SO_ATTACH_FILTER: ::c_int = 26;
-pub const SO_DETACH_FILTER: ::c_int = 27;
-pub const SO_GET_FILTER: ::c_int = SO_ATTACH_FILTER;
-pub const SO_PEERNAME: ::c_int = 28;
-pub const SO_TIMESTAMP: ::c_int = 29;
-// pub const SO_TIMESTAMP_OLD: ::c_int = 29;
-pub const SO_ACCEPTCONN: ::c_int = 30;
-pub const SO_PEERSEC: ::c_int = 31;
-pub const SO_SNDBUFFORCE: ::c_int = 32;
-pub const SO_RCVBUFFORCE: ::c_int = 33;
-pub const SO_PASSSEC: ::c_int = 34;
-pub const SO_TIMESTAMPNS: ::c_int = 35;
-// pub const SO_TIMESTAMPNS_OLD: ::c_int = 35;
-pub const SO_MARK: ::c_int = 36;
-pub const SO_TIMESTAMPING: ::c_int = 37;
-// pub const SO_TIMESTAMPING_OLD: ::c_int = 37;
-pub const SO_PROTOCOL: ::c_int = 38;
-pub const SO_DOMAIN: ::c_int = 39;
-pub const SO_RXQ_OVFL: ::c_int = 40;
-pub const SO_WIFI_STATUS: ::c_int = 41;
-pub const SCM_WIFI_STATUS: ::c_int = SO_WIFI_STATUS;
-pub const SO_PEEK_OFF: ::c_int = 42;
-pub const SO_NOFCS: ::c_int = 43;
-pub const SO_LOCK_FILTER: ::c_int = 44;
-pub const SO_SELECT_ERR_QUEUE: ::c_int = 45;
-pub const SO_BUSY_POLL: ::c_int = 46;
-pub const SO_MAX_PACING_RATE: ::c_int = 47;
-pub const SO_BPF_EXTENSIONS: ::c_int = 48;
-pub const SO_INCOMING_CPU: ::c_int = 49;
-pub const SO_ATTACH_BPF: ::c_int = 50;
-pub const SO_DETACH_BPF: ::c_int = SO_DETACH_FILTER;
-pub const SO_ATTACH_REUSEPORT_CBPF: ::c_int = 51;
-pub const SO_ATTACH_REUSEPORT_EBPF: ::c_int = 52;
-pub const SO_CNX_ADVICE: ::c_int = 53;
-pub const SCM_TIMESTAMPING_OPT_STATS: ::c_int = 54;
-pub const SO_MEMINFO: ::c_int = 55;
-pub const SO_INCOMING_NAPI_ID: ::c_int = 56;
-pub const SO_COOKIE: ::c_int = 57;
-pub const SCM_TIMESTAMPING_PKTINFO: ::c_int = 58;
-pub const SO_PEERGROUPS: ::c_int = 59;
-pub const SO_ZEROCOPY: ::c_int = 60;
-pub const SO_TXTIME: ::c_int = 61;
-pub const SCM_TXTIME: ::c_int = SO_TXTIME;
-pub const SO_BINDTOIFINDEX: ::c_int = 62;
-cfg_if! {
-    // Some of these platforms in CI already have these constants.
-    // But they may still not have those _OLD ones.
-    if #[cfg(all(any(target_arch = "x86",
-                     target_arch = "x86_64",
-                     target_arch = "aarch64"),
-                 not(target_env = "musl")))] {
-        pub const SO_TIMESTAMP_NEW: ::c_int = 63;
-        pub const SO_TIMESTAMPNS_NEW: ::c_int = 64;
-        pub const SO_TIMESTAMPING_NEW: ::c_int = 65;
-        pub const SO_RCVTIMEO_NEW: ::c_int = 66;
-        pub const SO_SNDTIMEO_NEW: ::c_int = 67;
-        pub const SO_DETACH_REUSEPORT_BPF: ::c_int = 68;
-    }
-}
-
-cfg_if! {
-    if #[cfg(any(target_arch = "x86",
-                 target_arch = "x86_64",
-                 target_arch = "aarch64"))] {
-        pub const FICLONE: ::c_ulong = 0x40049409;
-        pub const FICLONERANGE: ::c_ulong = 0x4020940D;
-    }
-}
-// pub const SO_PREFER_BUSY_POLL: ::c_int = 69;
-// pub const SO_BUSY_POLL_BUDGET: ::c_int = 70;
-
-// Defined in unix/linux_like/mod.rs
-// pub const SCM_TIMESTAMP: ::c_int = SO_TIMESTAMP;
-pub const SCM_TIMESTAMPNS: ::c_int = SO_TIMESTAMPNS;
-pub const SCM_TIMESTAMPING: ::c_int = SO_TIMESTAMPING;
-
-// Ioctl Constants
-
-pub const TCGETS: ::Ioctl = 0x5401;
-pub const TCSETS: ::Ioctl = 0x5402;
-pub const TCSETSW: ::Ioctl = 0x5403;
-pub const TCSETSF: ::Ioctl = 0x5404;
-pub const TCGETA: ::Ioctl = 0x5405;
-pub const TCSETA: ::Ioctl = 0x5406;
-pub const TCSETAW: ::Ioctl = 0x5407;
-pub const TCSETAF: ::Ioctl = 0x5408;
-pub const TCSBRK: ::Ioctl = 0x5409;
-pub const TCXONC: ::Ioctl = 0x540A;
-pub const TCFLSH: ::Ioctl = 0x540B;
-pub const TIOCEXCL: ::Ioctl = 0x540C;
-pub const TIOCNXCL: ::Ioctl = 0x540D;
-pub const TIOCSCTTY: ::Ioctl = 0x540E;
-pub const TIOCGPGRP: ::Ioctl = 0x540F;
-pub const TIOCSPGRP: ::Ioctl = 0x5410;
-pub const TIOCOUTQ: ::Ioctl = 0x5411;
-pub const TIOCSTI: ::Ioctl = 0x5412;
-pub const TIOCGWINSZ: ::Ioctl = 0x5413;
-pub const TIOCSWINSZ: ::Ioctl = 0x5414;
-pub const TIOCMGET: ::Ioctl = 0x5415;
-pub const TIOCMBIS: ::Ioctl = 0x5416;
-pub const TIOCMBIC: ::Ioctl = 0x5417;
-pub const TIOCMSET: ::Ioctl = 0x5418;
-pub const TIOCGSOFTCAR: ::Ioctl = 0x5419;
-pub const TIOCSSOFTCAR: ::Ioctl = 0x541A;
-pub const FIONREAD: ::Ioctl = 0x541B;
-pub const TIOCINQ: ::Ioctl = FIONREAD;
-pub const TIOCLINUX: ::Ioctl = 0x541C;
-pub const TIOCCONS: ::Ioctl = 0x541D;
-pub const TIOCGSERIAL: ::Ioctl = 0x541E;
-pub const TIOCSSERIAL: ::Ioctl = 0x541F;
-pub const TIOCPKT: ::Ioctl = 0x5420;
-pub const FIONBIO: ::Ioctl = 0x5421;
-pub const TIOCNOTTY: ::Ioctl = 0x5422;
-pub const TIOCSETD: ::Ioctl = 0x5423;
-pub const TIOCGETD: ::Ioctl = 0x5424;
-pub const TCSBRKP: ::Ioctl = 0x5425;
-pub const TIOCSBRK: ::Ioctl = 0x5427;
-pub const TIOCCBRK: ::Ioctl = 0x5428;
-pub const TIOCGSID: ::Ioctl = 0x5429;
-pub const TCGETS2: ::Ioctl = 0x802c542a;
-pub const TCSETS2: ::Ioctl = 0x402c542b;
-pub const TCSETSW2: ::Ioctl = 0x402c542c;
-pub const TCSETSF2: ::Ioctl = 0x402c542d;
-pub const TIOCGRS485: ::Ioctl = 0x542E;
-pub const TIOCSRS485: ::Ioctl = 0x542F;
-pub const TIOCGPTN: ::Ioctl = 0x80045430;
-pub const TIOCSPTLCK: ::Ioctl = 0x40045431;
-pub const TIOCGDEV: ::Ioctl = 0x80045432;
-pub const TCGETX: ::Ioctl = 0x5432;
-pub const TCSETX: ::Ioctl = 0x5433;
-pub const TCSETXF: ::Ioctl = 0x5434;
-pub const TCSETXW: ::Ioctl = 0x5435;
-pub const TIOCSIG: ::Ioctl = 0x40045436;
-pub const TIOCVHANGUP: ::Ioctl = 0x5437;
-pub const TIOCGPKT: ::Ioctl = 0x80045438;
-pub const TIOCGPTLCK: ::Ioctl = 0x80045439;
-pub const TIOCGEXCL: ::Ioctl = 0x80045440;
-pub const TIOCGPTPEER: ::Ioctl = 0x5441;
-// pub const TIOCGISO7816: ::Ioctl = 0x80285442;
-// pub const TIOCSISO7816: ::Ioctl = 0xc0285443;
-pub const FIONCLEX: ::Ioctl = 0x5450;
-pub const FIOCLEX: ::Ioctl = 0x5451;
-pub const FIOASYNC: ::Ioctl = 0x5452;
-pub const TIOCSERCONFIG: ::Ioctl = 0x5453;
-pub const TIOCSERGWILD: ::Ioctl = 0x5454;
-pub const TIOCSERSWILD: ::Ioctl = 0x5455;
-pub const TIOCGLCKTRMIOS: ::Ioctl = 0x5456;
-pub const TIOCSLCKTRMIOS: ::Ioctl = 0x5457;
-pub const TIOCSERGSTRUCT: ::Ioctl = 0x5458;
-pub const TIOCSERGETLSR: ::Ioctl = 0x5459;
-pub const TIOCSERGETMULTI: ::Ioctl = 0x545A;
-pub const TIOCSERSETMULTI: ::Ioctl = 0x545B;
-pub const TIOCMIWAIT: ::Ioctl = 0x545C;
-pub const TIOCGICOUNT: ::Ioctl = 0x545D;
-pub const BLKIOMIN: ::Ioctl = 0x1278;
-pub const BLKIOOPT: ::Ioctl = 0x1279;
-pub const BLKSSZGET: ::Ioctl = 0x1268;
-pub const BLKPBSZGET: ::Ioctl = 0x127B;
-
-cfg_if! {
-    if #[cfg(any(target_arch = "arm",
-                 target_arch = "s390x"))] {
-        pub const FIOQSIZE: ::Ioctl = 0x545E;
-    } else {
-        pub const FIOQSIZE: ::Ioctl = 0x5460;
-    }
-}
-
-pub const TIOCM_LE: ::c_int = 0x001;
-pub const TIOCM_DTR: ::c_int = 0x002;
-pub const TIOCM_RTS: ::c_int = 0x004;
-pub const TIOCM_ST: ::c_int = 0x008;
-pub const TIOCM_SR: ::c_int = 0x010;
-pub const TIOCM_CTS: ::c_int = 0x020;
-pub const TIOCM_CAR: ::c_int = 0x040;
-pub const TIOCM_CD: ::c_int = TIOCM_CAR;
-pub const TIOCM_RNG: ::c_int = 0x080;
-pub const TIOCM_RI: ::c_int = TIOCM_RNG;
-pub const TIOCM_DSR: ::c_int = 0x100;
-
-pub const BOTHER: ::speed_t = 0o010000;
-pub const IBSHIFT: ::tcflag_t = 16;
-
-// RLIMIT Constants
-
-cfg_if! {
-    if #[cfg(any(target_env = "gnu",
-                 target_env = "uclibc"))] {
-
-        pub const RLIMIT_CPU: ::__rlimit_resource_t = 0;
-        pub const RLIMIT_FSIZE: ::__rlimit_resource_t = 1;
-        pub const RLIMIT_DATA: ::__rlimit_resource_t = 2;
-        pub const RLIMIT_STACK: ::__rlimit_resource_t = 3;
-        pub const RLIMIT_CORE: ::__rlimit_resource_t = 4;
-        pub const RLIMIT_RSS: ::__rlimit_resource_t = 5;
-        pub const RLIMIT_NPROC: ::__rlimit_resource_t = 6;
-        pub const RLIMIT_NOFILE: ::__rlimit_resource_t = 7;
-        pub const RLIMIT_MEMLOCK: ::__rlimit_resource_t = 8;
-        pub const RLIMIT_AS: ::__rlimit_resource_t = 9;
-        pub const RLIMIT_LOCKS: ::__rlimit_resource_t = 10;
-        pub const RLIMIT_SIGPENDING: ::__rlimit_resource_t = 11;
-        pub const RLIMIT_MSGQUEUE: ::__rlimit_resource_t = 12;
-        pub const RLIMIT_NICE: ::__rlimit_resource_t = 13;
-        pub const RLIMIT_RTPRIO: ::__rlimit_resource_t = 14;
-        pub const RLIMIT_RTTIME: ::__rlimit_resource_t = 15;
-        pub const RLIMIT_NLIMITS: ::__rlimit_resource_t = RLIM_NLIMITS;
-
-    } else if #[cfg(target_env = "musl")] {
-
-        pub const RLIMIT_CPU: ::c_int = 0;
-        pub const RLIMIT_FSIZE: ::c_int = 1;
-        pub const RLIMIT_DATA: ::c_int = 2;
-        pub const RLIMIT_STACK: ::c_int = 3;
-        pub const RLIMIT_CORE: ::c_int = 4;
-        pub const RLIMIT_RSS: ::c_int = 5;
-        pub const RLIMIT_NPROC: ::c_int = 6;
-        pub const RLIMIT_NOFILE: ::c_int = 7;
-        pub const RLIMIT_MEMLOCK: ::c_int = 8;
-        pub const RLIMIT_AS: ::c_int = 9;
-        pub const RLIMIT_LOCKS: ::c_int = 10;
-        pub const RLIMIT_SIGPENDING: ::c_int = 11;
-        pub const RLIMIT_MSGQUEUE: ::c_int = 12;
-        pub const RLIMIT_NICE: ::c_int = 13;
-        pub const RLIMIT_RTPRIO: ::c_int = 14;
-        pub const RLIMIT_RTTIME: ::c_int = 15;
-        pub const RLIM_NLIMITS: ::c_int = 15;
-        pub const RLIMIT_NLIMITS: ::c_int = RLIM_NLIMITS;
-    }
-}
-
-cfg_if! {
-    if #[cfg(target_env = "gnu")] {
-        pub const RLIM_NLIMITS: ::__rlimit_resource_t = 16;
-    }
-    else if #[cfg(target_env = "uclibc")] {
-        pub const RLIM_NLIMITS: ::__rlimit_resource_t = 15;
-    }
-}
-
-pub const RLIM_INFINITY: ::rlim_t = !0;
-
-
\ No newline at end of file diff --git a/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/linux_like/linux/arch/mod.rs.html b/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/linux_like/linux/arch/mod.rs.html deleted file mode 100644 index 29d416f..0000000 --- a/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/linux_like/linux/arch/mod.rs.html +++ /dev/null @@ -1,32 +0,0 @@ -mod.rs - source
1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-
cfg_if! {
-    if #[cfg(any(target_arch = "mips", target_arch = "mips64"))] {
-        mod mips;
-        pub use self::mips::*;
-    } else if #[cfg(any(target_arch = "powerpc", target_arch = "powerpc64"))] {
-        mod powerpc;
-        pub use self::powerpc::*;
-    } else if #[cfg(any(target_arch = "sparc", target_arch = "sparc64"))] {
-        mod sparc;
-        pub use self::sparc::*;
-    } else {
-        mod generic;
-        pub use self::generic::*;
-    }
-}
-
-
\ No newline at end of file diff --git a/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/linux_like/linux/gnu/align.rs.html b/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/linux_like/linux/gnu/align.rs.html deleted file mode 100644 index 59d0d18..0000000 --- a/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/linux_like/linux/gnu/align.rs.html +++ /dev/null @@ -1,28 +0,0 @@ -align.rs - source
1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-
s! {
-    // FIXME this is actually a union
-    #[cfg_attr(target_pointer_width = "32",
-               repr(align(4)))]
-    #[cfg_attr(target_pointer_width = "64",
-               repr(align(8)))]
-    pub struct sem_t {
-        #[cfg(target_pointer_width = "32")]
-        __size: [::c_char; 16],
-        #[cfg(target_pointer_width = "64")]
-        __size: [::c_char; 32],
-    }
-}
-
-
\ No newline at end of file diff --git a/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/linux_like/linux/gnu/b64/mod.rs.html b/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/linux_like/linux/gnu/b64/mod.rs.html deleted file mode 100644 index c79d1d4..0000000 --- a/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/linux_like/linux/gnu/b64/mod.rs.html +++ /dev/null @@ -1,254 +0,0 @@ -mod.rs - source
1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
-21
-22
-23
-24
-25
-26
-27
-28
-29
-30
-31
-32
-33
-34
-35
-36
-37
-38
-39
-40
-41
-42
-43
-44
-45
-46
-47
-48
-49
-50
-51
-52
-53
-54
-55
-56
-57
-58
-59
-60
-61
-62
-63
-64
-65
-66
-67
-68
-69
-70
-71
-72
-73
-74
-75
-76
-77
-78
-79
-80
-81
-82
-83
-84
-85
-86
-87
-88
-89
-90
-91
-92
-93
-94
-95
-96
-97
-98
-99
-100
-101
-102
-103
-104
-105
-106
-107
-108
-109
-110
-111
-112
-113
-114
-115
-116
-117
-118
-119
-120
-121
-122
-123
-124
-125
-126
-
//! 64-bit specific definitions for linux-like values
-
-pub type ino_t = u64;
-pub type off_t = i64;
-pub type blkcnt_t = i64;
-pub type shmatt_t = u64;
-pub type msgqnum_t = u64;
-pub type msglen_t = u64;
-pub type fsblkcnt_t = u64;
-pub type fsfilcnt_t = u64;
-pub type rlim_t = u64;
-#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
-pub type __syscall_ulong_t = ::c_ulonglong;
-#[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
-pub type __syscall_ulong_t = ::c_ulong;
-
-cfg_if! {
-    if #[cfg(all(target_arch = "aarch64", target_pointer_width = "32"))] {
-        pub type clock_t = i32;
-        pub type time_t = i32;
-        pub type __fsword_t = i32;
-    } else {
-        pub type __fsword_t = i64;
-        pub type clock_t = i64;
-        pub type time_t = i64;
-    }
-}
-
-s! {
-    pub struct sigset_t {
-        #[cfg(target_pointer_width = "32")]
-        __val: [u32; 32],
-        #[cfg(target_pointer_width = "64")]
-        __val: [u64; 16],
-    }
-
-    pub struct sysinfo {
-        pub uptime: i64,
-        pub loads: [u64; 3],
-        pub totalram: u64,
-        pub freeram: u64,
-        pub sharedram: u64,
-        pub bufferram: u64,
-        pub totalswap: u64,
-        pub freeswap: u64,
-        pub procs: ::c_ushort,
-        pub pad: ::c_ushort,
-        pub totalhigh: u64,
-        pub freehigh: u64,
-        pub mem_unit: ::c_uint,
-        pub _f: [::c_char; 0],
-    }
-
-    pub struct msqid_ds {
-        pub msg_perm: ::ipc_perm,
-        pub msg_stime: ::time_t,
-        pub msg_rtime: ::time_t,
-        pub msg_ctime: ::time_t,
-        __msg_cbytes: u64,
-        pub msg_qnum: ::msgqnum_t,
-        pub msg_qbytes: ::msglen_t,
-        pub msg_lspid: ::pid_t,
-        pub msg_lrpid: ::pid_t,
-        __glibc_reserved4: u64,
-        __glibc_reserved5: u64,
-    }
-
-    pub struct semid_ds {
-        pub sem_perm: ipc_perm,
-        pub sem_otime: ::time_t,
-        #[cfg(not(any(
-            target_arch = "aarch64",
-            target_arch = "loongarch64",
-            target_arch = "mips64",
-            target_arch = "powerpc64",
-            target_arch = "riscv64",
-            target_arch = "sparc64")))]
-        __reserved: ::__syscall_ulong_t,
-        pub sem_ctime: ::time_t,
-        #[cfg(not(any(
-            target_arch = "aarch64",
-            target_arch = "loongarch64",
-            target_arch = "mips64",
-            target_arch = "powerpc64",
-            target_arch = "riscv64",
-            target_arch = "sparc64")))]
-        __reserved2: ::__syscall_ulong_t,
-        pub sem_nsems: ::__syscall_ulong_t,
-        __glibc_reserved3: ::__syscall_ulong_t,
-        __glibc_reserved4: ::__syscall_ulong_t,
-    }
-}
-
-pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 8;
-
-pub const O_LARGEFILE: ::c_int = 0;
-
-cfg_if! {
-    if #[cfg(target_arch = "aarch64")] {
-        mod aarch64;
-        pub use self::aarch64::*;
-    } else if #[cfg(any(target_arch = "powerpc64"))] {
-        mod powerpc64;
-        pub use self::powerpc64::*;
-    } else if #[cfg(any(target_arch = "sparc64"))] {
-        mod sparc64;
-        pub use self::sparc64::*;
-    } else if #[cfg(any(target_arch = "mips64"))] {
-        mod mips64;
-        pub use self::mips64::*;
-    } else if #[cfg(any(target_arch = "s390x"))] {
-        mod s390x;
-        pub use self::s390x::*;
-    } else if #[cfg(any(target_arch = "x86_64"))] {
-        mod x86_64;
-        pub use self::x86_64::*;
-    } else if #[cfg(any(target_arch = "riscv64"))] {
-        mod riscv64;
-        pub use self::riscv64::*;
-    } else if #[cfg(any(target_arch = "loongarch64"))] {
-        mod loongarch64;
-        pub use self::loongarch64::*;
-    } else {
-        // Unknown target_arch
-    }
-}
-
-
\ No newline at end of file diff --git a/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/linux_like/linux/gnu/b64/x86_64/align.rs.html b/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/linux_like/linux/gnu/b64/x86_64/align.rs.html deleted file mode 100644 index 77f4341..0000000 --- a/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/linux_like/linux/gnu/b64/x86_64/align.rs.html +++ /dev/null @@ -1,50 +0,0 @@ -align.rs - source
1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
-21
-22
-23
-24
-
s_no_extra_traits! {
-    #[allow(missing_debug_implementations)]
-    #[repr(align(16))]
-    pub struct max_align_t {
-        priv_: [f64; 4]
-    }
-}
-
-s! {
-    #[repr(align(8))]
-    pub struct clone_args {
-        pub flags: ::c_ulonglong,
-        pub pidfd: ::c_ulonglong,
-        pub child_tid: ::c_ulonglong,
-        pub parent_tid: ::c_ulonglong,
-        pub exit_signal: ::c_ulonglong,
-        pub stack: ::c_ulonglong,
-        pub stack_size: ::c_ulonglong,
-        pub tls: ::c_ulonglong,
-        pub set_tid: ::c_ulonglong,
-        pub set_tid_size: ::c_ulonglong,
-        pub cgroup: ::c_ulonglong,
-    }
-}
-
-
\ No newline at end of file diff --git a/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/linux_like/linux/gnu/b64/x86_64/mod.rs.html b/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/linux_like/linux/gnu/b64/x86_64/mod.rs.html deleted file mode 100644 index a206703..0000000 --- a/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/linux_like/linux/gnu/b64/x86_64/mod.rs.html +++ /dev/null @@ -1,1668 +0,0 @@ -mod.rs - source
1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
-21
-22
-23
-24
-25
-26
-27
-28
-29
-30
-31
-32
-33
-34
-35
-36
-37
-38
-39
-40
-41
-42
-43
-44
-45
-46
-47
-48
-49
-50
-51
-52
-53
-54
-55
-56
-57
-58
-59
-60
-61
-62
-63
-64
-65
-66
-67
-68
-69
-70
-71
-72
-73
-74
-75
-76
-77
-78
-79
-80
-81
-82
-83
-84
-85
-86
-87
-88
-89
-90
-91
-92
-93
-94
-95
-96
-97
-98
-99
-100
-101
-102
-103
-104
-105
-106
-107
-108
-109
-110
-111
-112
-113
-114
-115
-116
-117
-118
-119
-120
-121
-122
-123
-124
-125
-126
-127
-128
-129
-130
-131
-132
-133
-134
-135
-136
-137
-138
-139
-140
-141
-142
-143
-144
-145
-146
-147
-148
-149
-150
-151
-152
-153
-154
-155
-156
-157
-158
-159
-160
-161
-162
-163
-164
-165
-166
-167
-168
-169
-170
-171
-172
-173
-174
-175
-176
-177
-178
-179
-180
-181
-182
-183
-184
-185
-186
-187
-188
-189
-190
-191
-192
-193
-194
-195
-196
-197
-198
-199
-200
-201
-202
-203
-204
-205
-206
-207
-208
-209
-210
-211
-212
-213
-214
-215
-216
-217
-218
-219
-220
-221
-222
-223
-224
-225
-226
-227
-228
-229
-230
-231
-232
-233
-234
-235
-236
-237
-238
-239
-240
-241
-242
-243
-244
-245
-246
-247
-248
-249
-250
-251
-252
-253
-254
-255
-256
-257
-258
-259
-260
-261
-262
-263
-264
-265
-266
-267
-268
-269
-270
-271
-272
-273
-274
-275
-276
-277
-278
-279
-280
-281
-282
-283
-284
-285
-286
-287
-288
-289
-290
-291
-292
-293
-294
-295
-296
-297
-298
-299
-300
-301
-302
-303
-304
-305
-306
-307
-308
-309
-310
-311
-312
-313
-314
-315
-316
-317
-318
-319
-320
-321
-322
-323
-324
-325
-326
-327
-328
-329
-330
-331
-332
-333
-334
-335
-336
-337
-338
-339
-340
-341
-342
-343
-344
-345
-346
-347
-348
-349
-350
-351
-352
-353
-354
-355
-356
-357
-358
-359
-360
-361
-362
-363
-364
-365
-366
-367
-368
-369
-370
-371
-372
-373
-374
-375
-376
-377
-378
-379
-380
-381
-382
-383
-384
-385
-386
-387
-388
-389
-390
-391
-392
-393
-394
-395
-396
-397
-398
-399
-400
-401
-402
-403
-404
-405
-406
-407
-408
-409
-410
-411
-412
-413
-414
-415
-416
-417
-418
-419
-420
-421
-422
-423
-424
-425
-426
-427
-428
-429
-430
-431
-432
-433
-434
-435
-436
-437
-438
-439
-440
-441
-442
-443
-444
-445
-446
-447
-448
-449
-450
-451
-452
-453
-454
-455
-456
-457
-458
-459
-460
-461
-462
-463
-464
-465
-466
-467
-468
-469
-470
-471
-472
-473
-474
-475
-476
-477
-478
-479
-480
-481
-482
-483
-484
-485
-486
-487
-488
-489
-490
-491
-492
-493
-494
-495
-496
-497
-498
-499
-500
-501
-502
-503
-504
-505
-506
-507
-508
-509
-510
-511
-512
-513
-514
-515
-516
-517
-518
-519
-520
-521
-522
-523
-524
-525
-526
-527
-528
-529
-530
-531
-532
-533
-534
-535
-536
-537
-538
-539
-540
-541
-542
-543
-544
-545
-546
-547
-548
-549
-550
-551
-552
-553
-554
-555
-556
-557
-558
-559
-560
-561
-562
-563
-564
-565
-566
-567
-568
-569
-570
-571
-572
-573
-574
-575
-576
-577
-578
-579
-580
-581
-582
-583
-584
-585
-586
-587
-588
-589
-590
-591
-592
-593
-594
-595
-596
-597
-598
-599
-600
-601
-602
-603
-604
-605
-606
-607
-608
-609
-610
-611
-612
-613
-614
-615
-616
-617
-618
-619
-620
-621
-622
-623
-624
-625
-626
-627
-628
-629
-630
-631
-632
-633
-634
-635
-636
-637
-638
-639
-640
-641
-642
-643
-644
-645
-646
-647
-648
-649
-650
-651
-652
-653
-654
-655
-656
-657
-658
-659
-660
-661
-662
-663
-664
-665
-666
-667
-668
-669
-670
-671
-672
-673
-674
-675
-676
-677
-678
-679
-680
-681
-682
-683
-684
-685
-686
-687
-688
-689
-690
-691
-692
-693
-694
-695
-696
-697
-698
-699
-700
-701
-702
-703
-704
-705
-706
-707
-708
-709
-710
-711
-712
-713
-714
-715
-716
-717
-718
-719
-720
-721
-722
-723
-724
-725
-726
-727
-728
-729
-730
-731
-732
-733
-734
-735
-736
-737
-738
-739
-740
-741
-742
-743
-744
-745
-746
-747
-748
-749
-750
-751
-752
-753
-754
-755
-756
-757
-758
-759
-760
-761
-762
-763
-764
-765
-766
-767
-768
-769
-770
-771
-772
-773
-774
-775
-776
-777
-778
-779
-780
-781
-782
-783
-784
-785
-786
-787
-788
-789
-790
-791
-792
-793
-794
-795
-796
-797
-798
-799
-800
-801
-802
-803
-804
-805
-806
-807
-808
-809
-810
-811
-812
-813
-814
-815
-816
-817
-818
-819
-820
-821
-822
-823
-824
-825
-826
-827
-828
-829
-830
-831
-832
-833
-
//! x86_64-specific definitions for 64-bit linux-like values
-
-pub type c_char = i8;
-pub type wchar_t = i32;
-pub type nlink_t = u64;
-pub type blksize_t = i64;
-pub type greg_t = i64;
-pub type suseconds_t = i64;
-pub type __u64 = ::c_ulonglong;
-pub type __s64 = ::c_longlong;
-
-s! {
-    pub struct sigaction {
-        pub sa_sigaction: ::sighandler_t,
-        pub sa_mask: ::sigset_t,
-        #[cfg(target_arch = "sparc64")]
-        __reserved0: ::c_int,
-        pub sa_flags: ::c_int,
-        pub sa_restorer: ::Option<extern fn()>,
-    }
-
-    pub struct statfs {
-        pub f_type: ::__fsword_t,
-        pub f_bsize: ::__fsword_t,
-        pub f_blocks: ::fsblkcnt_t,
-        pub f_bfree: ::fsblkcnt_t,
-        pub f_bavail: ::fsblkcnt_t,
-
-        pub f_files: ::fsfilcnt_t,
-        pub f_ffree: ::fsfilcnt_t,
-        pub f_fsid: ::fsid_t,
-
-        pub f_namelen: ::__fsword_t,
-        pub f_frsize: ::__fsword_t,
-        f_spare: [::__fsword_t; 5],
-    }
-
-    pub struct flock {
-        pub l_type: ::c_short,
-        pub l_whence: ::c_short,
-        pub l_start: ::off_t,
-        pub l_len: ::off_t,
-        pub l_pid: ::pid_t,
-    }
-
-    pub struct flock64 {
-        pub l_type: ::c_short,
-        pub l_whence: ::c_short,
-        pub l_start: ::off64_t,
-        pub l_len: ::off64_t,
-        pub l_pid: ::pid_t,
-    }
-
-    pub struct siginfo_t {
-        pub si_signo: ::c_int,
-        pub si_errno: ::c_int,
-        pub si_code: ::c_int,
-        #[doc(hidden)]
-        #[deprecated(
-            since="0.2.54",
-            note="Please leave a comment on \
-                  https://github.com/rust-lang/libc/pull/1316 if you're using \
-                  this field"
-        )]
-        pub _pad: [::c_int; 29],
-        _align: [u64; 0],
-    }
-
-    pub struct stack_t {
-        pub ss_sp: *mut ::c_void,
-        pub ss_flags: ::c_int,
-        pub ss_size: ::size_t
-    }
-
-    pub struct stat {
-        pub st_dev: ::dev_t,
-        pub st_ino: ::ino_t,
-        pub st_nlink: ::nlink_t,
-        pub st_mode: ::mode_t,
-        pub st_uid: ::uid_t,
-        pub st_gid: ::gid_t,
-        __pad0: ::c_int,
-        pub st_rdev: ::dev_t,
-        pub st_size: ::off_t,
-        pub st_blksize: ::blksize_t,
-        pub st_blocks: ::blkcnt_t,
-        pub st_atime: ::time_t,
-        pub st_atime_nsec: i64,
-        pub st_mtime: ::time_t,
-        pub st_mtime_nsec: i64,
-        pub st_ctime: ::time_t,
-        pub st_ctime_nsec: i64,
-        __unused: [i64; 3],
-    }
-
-    pub struct stat64 {
-        pub st_dev: ::dev_t,
-        pub st_ino: ::ino64_t,
-        pub st_nlink: ::nlink_t,
-        pub st_mode: ::mode_t,
-        pub st_uid: ::uid_t,
-        pub st_gid: ::gid_t,
-        __pad0: ::c_int,
-        pub st_rdev: ::dev_t,
-        pub st_size: ::off_t,
-        pub st_blksize: ::blksize_t,
-        pub st_blocks: ::blkcnt64_t,
-        pub st_atime: ::time_t,
-        pub st_atime_nsec: i64,
-        pub st_mtime: ::time_t,
-        pub st_mtime_nsec: i64,
-        pub st_ctime: ::time_t,
-        pub st_ctime_nsec: i64,
-        __reserved: [i64; 3],
-    }
-
-    pub struct statfs64 {
-        pub f_type: ::__fsword_t,
-        pub f_bsize: ::__fsword_t,
-        pub f_blocks: u64,
-        pub f_bfree: u64,
-        pub f_bavail: u64,
-        pub f_files: u64,
-        pub f_ffree: u64,
-        pub f_fsid: ::fsid_t,
-        pub f_namelen: ::__fsword_t,
-        pub f_frsize: ::__fsword_t,
-        pub f_flags: ::__fsword_t,
-        pub f_spare: [::__fsword_t; 4],
-    }
-
-    pub struct statvfs64 {
-        pub f_bsize: ::c_ulong,
-        pub f_frsize: ::c_ulong,
-        pub f_blocks: u64,
-        pub f_bfree: u64,
-        pub f_bavail: u64,
-        pub f_files: u64,
-        pub f_ffree: u64,
-        pub f_favail: u64,
-        pub f_fsid: ::c_ulong,
-        pub f_flag: ::c_ulong,
-        pub f_namemax: ::c_ulong,
-        __f_spare: [::c_int; 6],
-    }
-
-    pub struct pthread_attr_t {
-        #[cfg(target_pointer_width = "32")]
-        __size: [u32; 8],
-        #[cfg(target_pointer_width = "64")]
-        __size: [u64; 7]
-    }
-
-    pub struct _libc_fpxreg {
-        pub significand: [u16; 4],
-        pub exponent: u16,
-        __private: [u16; 3],
-    }
-
-    pub struct _libc_xmmreg {
-        pub element: [u32; 4],
-    }
-
-    pub struct _libc_fpstate {
-        pub cwd: u16,
-        pub swd: u16,
-        pub ftw: u16,
-        pub fop: u16,
-        pub rip: u64,
-        pub rdp: u64,
-        pub mxcsr: u32,
-        pub mxcr_mask: u32,
-        pub _st: [_libc_fpxreg; 8],
-        pub _xmm: [_libc_xmmreg; 16],
-        __private: [u64; 12],
-    }
-
-    pub struct user_regs_struct {
-        pub r15: ::c_ulonglong,
-        pub r14: ::c_ulonglong,
-        pub r13: ::c_ulonglong,
-        pub r12: ::c_ulonglong,
-        pub rbp: ::c_ulonglong,
-        pub rbx: ::c_ulonglong,
-        pub r11: ::c_ulonglong,
-        pub r10: ::c_ulonglong,
-        pub r9: ::c_ulonglong,
-        pub r8: ::c_ulonglong,
-        pub rax: ::c_ulonglong,
-        pub rcx: ::c_ulonglong,
-        pub rdx: ::c_ulonglong,
-        pub rsi: ::c_ulonglong,
-        pub rdi: ::c_ulonglong,
-        pub orig_rax: ::c_ulonglong,
-        pub rip: ::c_ulonglong,
-        pub cs: ::c_ulonglong,
-        pub eflags: ::c_ulonglong,
-        pub rsp: ::c_ulonglong,
-        pub ss: ::c_ulonglong,
-        pub fs_base: ::c_ulonglong,
-        pub gs_base: ::c_ulonglong,
-        pub ds: ::c_ulonglong,
-        pub es: ::c_ulonglong,
-        pub fs: ::c_ulonglong,
-        pub gs: ::c_ulonglong,
-    }
-
-    pub struct user {
-        pub regs: user_regs_struct,
-        pub u_fpvalid: ::c_int,
-        pub i387: user_fpregs_struct,
-        pub u_tsize: ::c_ulonglong,
-        pub u_dsize: ::c_ulonglong,
-        pub u_ssize: ::c_ulonglong,
-        pub start_code: ::c_ulonglong,
-        pub start_stack: ::c_ulonglong,
-        pub signal: ::c_longlong,
-        __reserved: ::c_int,
-        #[cfg(target_pointer_width = "32")]
-        __pad1: u32,
-        pub u_ar0: *mut user_regs_struct,
-        #[cfg(target_pointer_width = "32")]
-        __pad2: u32,
-        pub u_fpstate: *mut user_fpregs_struct,
-        pub magic: ::c_ulonglong,
-        pub u_comm: [::c_char; 32],
-        pub u_debugreg: [::c_ulonglong; 8],
-    }
-
-    pub struct mcontext_t {
-        pub gregs: [greg_t; 23],
-        pub fpregs: *mut _libc_fpstate,
-        __private: [u64; 8],
-    }
-
-    pub struct ipc_perm {
-        pub __key: ::key_t,
-        pub uid: ::uid_t,
-        pub gid: ::gid_t,
-        pub cuid: ::uid_t,
-        pub cgid: ::gid_t,
-        pub mode: ::c_ushort,
-        __pad1: ::c_ushort,
-        pub __seq: ::c_ushort,
-        __pad2: ::c_ushort,
-        __unused1: u64,
-        __unused2: u64
-    }
-
-    pub struct shmid_ds {
-        pub shm_perm: ::ipc_perm,
-        pub shm_segsz: ::size_t,
-        pub shm_atime: ::time_t,
-        pub shm_dtime: ::time_t,
-        pub shm_ctime: ::time_t,
-        pub shm_cpid: ::pid_t,
-        pub shm_lpid: ::pid_t,
-        pub shm_nattch: ::shmatt_t,
-        __unused4: u64,
-        __unused5: u64
-    }
-
-    pub struct seccomp_notif_sizes {
-        pub seccomp_notif: ::__u16,
-        pub seccomp_notif_resp: ::__u16,
-        pub seccomp_data: ::__u16,
-    }
-
-    pub struct ptrace_rseq_configuration {
-        pub rseq_abi_pointer: ::__u64,
-        pub rseq_abi_size: ::__u32,
-        pub signature: ::__u32,
-        pub flags: ::__u32,
-        pub pad: ::__u32,
-    }
-}
-
-s_no_extra_traits! {
-    pub struct user_fpregs_struct {
-        pub cwd: ::c_ushort,
-        pub swd: ::c_ushort,
-        pub ftw: ::c_ushort,
-        pub fop: ::c_ushort,
-        pub rip: ::c_ulonglong,
-        pub rdp: ::c_ulonglong,
-        pub mxcsr: ::c_uint,
-        pub mxcr_mask: ::c_uint,
-        pub st_space: [::c_uint; 32],
-        pub xmm_space: [::c_uint; 64],
-        padding: [::c_uint; 24],
-    }
-
-    pub struct ucontext_t {
-        pub uc_flags: ::c_ulong,
-        pub uc_link: *mut ucontext_t,
-        pub uc_stack: ::stack_t,
-        pub uc_mcontext: mcontext_t,
-        pub uc_sigmask: ::sigset_t,
-        __private: [u8; 512],
-        // FIXME: the shadow stack field requires glibc >= 2.28.
-        // Re-add once we drop compatibility with glibc versions older than
-        // 2.28.
-        //
-        // __ssp: [::c_ulonglong; 4],
-    }
-}
-
-cfg_if! {
-    if #[cfg(feature = "extra_traits")] {
-        impl PartialEq for user_fpregs_struct {
-            fn eq(&self, other: &user_fpregs_struct) -> bool {
-                self.cwd == other.cwd
-                    && self.swd == other.swd
-                    && self.ftw == other.ftw
-                    && self.fop == other.fop
-                    && self.rip == other.rip
-                    && self.rdp == other.rdp
-                    && self.mxcsr == other.mxcsr
-                    && self.mxcr_mask == other.mxcr_mask
-                    && self.st_space == other.st_space
-                    && self
-                    .xmm_space
-                    .iter()
-                    .zip(other.xmm_space.iter())
-                    .all(|(a,b)| a == b)
-                // Ignore padding field
-            }
-        }
-
-        impl Eq for user_fpregs_struct {}
-
-        impl ::fmt::Debug for user_fpregs_struct {
-            fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
-                f.debug_struct("user_fpregs_struct")
-                    .field("cwd", &self.cwd)
-                    .field("ftw", &self.ftw)
-                    .field("fop", &self.fop)
-                    .field("rip", &self.rip)
-                    .field("rdp", &self.rdp)
-                    .field("mxcsr", &self.mxcsr)
-                    .field("mxcr_mask", &self.mxcr_mask)
-                    .field("st_space", &self.st_space)
-                // FIXME: .field("xmm_space", &self.xmm_space)
-                // Ignore padding field
-                    .finish()
-            }
-        }
-
-        impl ::hash::Hash for user_fpregs_struct {
-            fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
-                self.cwd.hash(state);
-                self.ftw.hash(state);
-                self.fop.hash(state);
-                self.rip.hash(state);
-                self.rdp.hash(state);
-                self.mxcsr.hash(state);
-                self.mxcr_mask.hash(state);
-                self.st_space.hash(state);
-                self.xmm_space.hash(state);
-                // Ignore padding field
-            }
-        }
-
-        impl PartialEq for ucontext_t {
-            fn eq(&self, other: &ucontext_t) -> bool {
-                self.uc_flags == other.uc_flags
-                    && self.uc_link == other.uc_link
-                    && self.uc_stack == other.uc_stack
-                    && self.uc_mcontext == other.uc_mcontext
-                    && self.uc_sigmask == other.uc_sigmask
-                // Ignore __private field
-            }
-        }
-
-        impl Eq for ucontext_t {}
-
-        impl ::fmt::Debug for ucontext_t {
-            fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
-                f.debug_struct("ucontext_t")
-                    .field("uc_flags", &self.uc_flags)
-                    .field("uc_link", &self.uc_link)
-                    .field("uc_stack", &self.uc_stack)
-                    .field("uc_mcontext", &self.uc_mcontext)
-                    .field("uc_sigmask", &self.uc_sigmask)
-                // Ignore __private field
-                    .finish()
-            }
-        }
-
-        impl ::hash::Hash for ucontext_t {
-            fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
-                self.uc_flags.hash(state);
-                self.uc_link.hash(state);
-                self.uc_stack.hash(state);
-                self.uc_mcontext.hash(state);
-                self.uc_sigmask.hash(state);
-                // Ignore __private field
-            }
-        }
-    }
-}
-
-pub const POSIX_FADV_DONTNEED: ::c_int = 4;
-pub const POSIX_FADV_NOREUSE: ::c_int = 5;
-
-pub const VEOF: usize = 4;
-pub const RTLD_DEEPBIND: ::c_int = 0x8;
-pub const RTLD_GLOBAL: ::c_int = 0x100;
-pub const RTLD_NOLOAD: ::c_int = 0x4;
-
-pub const O_APPEND: ::c_int = 1024;
-pub const O_CREAT: ::c_int = 64;
-pub const O_EXCL: ::c_int = 128;
-pub const O_NOCTTY: ::c_int = 256;
-pub const O_NONBLOCK: ::c_int = 2048;
-pub const O_SYNC: ::c_int = 1052672;
-pub const O_RSYNC: ::c_int = 1052672;
-pub const O_DSYNC: ::c_int = 4096;
-pub const O_FSYNC: ::c_int = 0x101000;
-pub const O_NOATIME: ::c_int = 0o1000000;
-pub const O_PATH: ::c_int = 0o10000000;
-pub const O_TMPFILE: ::c_int = 0o20000000 | O_DIRECTORY;
-
-pub const MADV_SOFT_OFFLINE: ::c_int = 101;
-pub const MAP_GROWSDOWN: ::c_int = 0x0100;
-
-pub const EDEADLK: ::c_int = 35;
-pub const ENAMETOOLONG: ::c_int = 36;
-pub const ENOLCK: ::c_int = 37;
-pub const ENOSYS: ::c_int = 38;
-pub const ENOTEMPTY: ::c_int = 39;
-pub const ELOOP: ::c_int = 40;
-pub const ENOMSG: ::c_int = 42;
-pub const EIDRM: ::c_int = 43;
-pub const ECHRNG: ::c_int = 44;
-pub const EL2NSYNC: ::c_int = 45;
-pub const EL3HLT: ::c_int = 46;
-pub const EL3RST: ::c_int = 47;
-pub const ELNRNG: ::c_int = 48;
-pub const EUNATCH: ::c_int = 49;
-pub const ENOCSI: ::c_int = 50;
-pub const EL2HLT: ::c_int = 51;
-pub const EBADE: ::c_int = 52;
-pub const EBADR: ::c_int = 53;
-pub const EXFULL: ::c_int = 54;
-pub const ENOANO: ::c_int = 55;
-pub const EBADRQC: ::c_int = 56;
-pub const EBADSLT: ::c_int = 57;
-pub const EMULTIHOP: ::c_int = 72;
-pub const EOVERFLOW: ::c_int = 75;
-pub const ENOTUNIQ: ::c_int = 76;
-pub const EBADFD: ::c_int = 77;
-pub const EBADMSG: ::c_int = 74;
-pub const EREMCHG: ::c_int = 78;
-pub const ELIBACC: ::c_int = 79;
-pub const ELIBBAD: ::c_int = 80;
-pub const ELIBSCN: ::c_int = 81;
-pub const ELIBMAX: ::c_int = 82;
-pub const ELIBEXEC: ::c_int = 83;
-pub const EILSEQ: ::c_int = 84;
-pub const ERESTART: ::c_int = 85;
-pub const ESTRPIPE: ::c_int = 86;
-pub const EUSERS: ::c_int = 87;
-pub const ENOTSOCK: ::c_int = 88;
-pub const EDESTADDRREQ: ::c_int = 89;
-pub const EMSGSIZE: ::c_int = 90;
-pub const EPROTOTYPE: ::c_int = 91;
-pub const ENOPROTOOPT: ::c_int = 92;
-pub const EPROTONOSUPPORT: ::c_int = 93;
-pub const ESOCKTNOSUPPORT: ::c_int = 94;
-pub const EOPNOTSUPP: ::c_int = 95;
-pub const EPFNOSUPPORT: ::c_int = 96;
-pub const EAFNOSUPPORT: ::c_int = 97;
-pub const EADDRINUSE: ::c_int = 98;
-pub const EADDRNOTAVAIL: ::c_int = 99;
-pub const ENETDOWN: ::c_int = 100;
-pub const ENETUNREACH: ::c_int = 101;
-pub const ENETRESET: ::c_int = 102;
-pub const ECONNABORTED: ::c_int = 103;
-pub const ECONNRESET: ::c_int = 104;
-pub const ENOBUFS: ::c_int = 105;
-pub const EISCONN: ::c_int = 106;
-pub const ENOTCONN: ::c_int = 107;
-pub const ESHUTDOWN: ::c_int = 108;
-pub const ETOOMANYREFS: ::c_int = 109;
-pub const ETIMEDOUT: ::c_int = 110;
-pub const ECONNREFUSED: ::c_int = 111;
-pub const EHOSTDOWN: ::c_int = 112;
-pub const EHOSTUNREACH: ::c_int = 113;
-pub const EALREADY: ::c_int = 114;
-pub const EINPROGRESS: ::c_int = 115;
-pub const ESTALE: ::c_int = 116;
-pub const EDQUOT: ::c_int = 122;
-pub const ENOMEDIUM: ::c_int = 123;
-pub const EMEDIUMTYPE: ::c_int = 124;
-pub const ECANCELED: ::c_int = 125;
-pub const ENOKEY: ::c_int = 126;
-pub const EKEYEXPIRED: ::c_int = 127;
-pub const EKEYREVOKED: ::c_int = 128;
-pub const EKEYREJECTED: ::c_int = 129;
-pub const EOWNERDEAD: ::c_int = 130;
-pub const ENOTRECOVERABLE: ::c_int = 131;
-pub const EHWPOISON: ::c_int = 133;
-pub const ERFKILL: ::c_int = 132;
-
-pub const SOCK_STREAM: ::c_int = 1;
-pub const SOCK_DGRAM: ::c_int = 2;
-
-pub const SA_ONSTACK: ::c_int = 0x08000000;
-pub const SA_SIGINFO: ::c_int = 0x00000004;
-pub const SA_NOCLDWAIT: ::c_int = 0x00000002;
-
-pub const SIGTTIN: ::c_int = 21;
-pub const SIGTTOU: ::c_int = 22;
-pub const SIGXCPU: ::c_int = 24;
-pub const SIGXFSZ: ::c_int = 25;
-pub const SIGVTALRM: ::c_int = 26;
-pub const SIGPROF: ::c_int = 27;
-pub const SIGWINCH: ::c_int = 28;
-pub const SIGCHLD: ::c_int = 17;
-pub const SIGBUS: ::c_int = 7;
-pub const SIGUSR1: ::c_int = 10;
-pub const SIGUSR2: ::c_int = 12;
-pub const SIGCONT: ::c_int = 18;
-pub const SIGSTOP: ::c_int = 19;
-pub const SIGTSTP: ::c_int = 20;
-pub const SIGURG: ::c_int = 23;
-pub const SIGIO: ::c_int = 29;
-pub const SIGSYS: ::c_int = 31;
-pub const SIGSTKFLT: ::c_int = 16;
-#[deprecated(since = "0.2.55", note = "Use SIGSYS instead")]
-pub const SIGUNUSED: ::c_int = 31;
-pub const SIGPOLL: ::c_int = 29;
-pub const SIGPWR: ::c_int = 30;
-pub const SIG_SETMASK: ::c_int = 2;
-pub const SIG_BLOCK: ::c_int = 0x000000;
-pub const SIG_UNBLOCK: ::c_int = 0x01;
-
-pub const POLLWRNORM: ::c_short = 0x100;
-pub const POLLWRBAND: ::c_short = 0x200;
-
-pub const O_ASYNC: ::c_int = 0x2000;
-pub const O_NDELAY: ::c_int = 0x800;
-
-pub const PTRACE_DETACH: ::c_uint = 17;
-pub const PTRACE_GET_RSEQ_CONFIGURATION: ::c_uint = 0x420f;
-
-pub const EFD_NONBLOCK: ::c_int = 0x800;
-
-pub const F_GETLK: ::c_int = 5;
-pub const F_GETOWN: ::c_int = 9;
-pub const F_SETOWN: ::c_int = 8;
-pub const F_SETLK: ::c_int = 6;
-pub const F_SETLKW: ::c_int = 7;
-pub const F_OFD_GETLK: ::c_int = 36;
-pub const F_OFD_SETLK: ::c_int = 37;
-pub const F_OFD_SETLKW: ::c_int = 38;
-
-pub const F_RDLCK: ::c_int = 0;
-pub const F_WRLCK: ::c_int = 1;
-pub const F_UNLCK: ::c_int = 2;
-
-pub const SFD_NONBLOCK: ::c_int = 0x0800;
-
-pub const TCSANOW: ::c_int = 0;
-pub const TCSADRAIN: ::c_int = 1;
-pub const TCSAFLUSH: ::c_int = 2;
-
-pub const SFD_CLOEXEC: ::c_int = 0x080000;
-
-pub const NCCS: usize = 32;
-
-pub const O_TRUNC: ::c_int = 512;
-
-pub const O_CLOEXEC: ::c_int = 0x80000;
-
-pub const EBFONT: ::c_int = 59;
-pub const ENOSTR: ::c_int = 60;
-pub const ENODATA: ::c_int = 61;
-pub const ETIME: ::c_int = 62;
-pub const ENOSR: ::c_int = 63;
-pub const ENONET: ::c_int = 64;
-pub const ENOPKG: ::c_int = 65;
-pub const EREMOTE: ::c_int = 66;
-pub const ENOLINK: ::c_int = 67;
-pub const EADV: ::c_int = 68;
-pub const ESRMNT: ::c_int = 69;
-pub const ECOMM: ::c_int = 70;
-pub const EPROTO: ::c_int = 71;
-pub const EDOTDOT: ::c_int = 73;
-
-pub const SA_NODEFER: ::c_int = 0x40000000;
-pub const SA_RESETHAND: ::c_int = 0x80000000;
-pub const SA_RESTART: ::c_int = 0x10000000;
-pub const SA_NOCLDSTOP: ::c_int = 0x00000001;
-
-pub const EPOLL_CLOEXEC: ::c_int = 0x80000;
-
-pub const EFD_CLOEXEC: ::c_int = 0x80000;
-
-pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4;
-pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4;
-
-pub const O_DIRECT: ::c_int = 0x4000;
-pub const O_DIRECTORY: ::c_int = 0x10000;
-pub const O_NOFOLLOW: ::c_int = 0x20000;
-
-pub const MAP_HUGETLB: ::c_int = 0x040000;
-pub const MAP_LOCKED: ::c_int = 0x02000;
-pub const MAP_NORESERVE: ::c_int = 0x04000;
-pub const MAP_32BIT: ::c_int = 0x0040;
-pub const MAP_ANON: ::c_int = 0x0020;
-pub const MAP_ANONYMOUS: ::c_int = 0x0020;
-pub const MAP_DENYWRITE: ::c_int = 0x0800;
-pub const MAP_EXECUTABLE: ::c_int = 0x01000;
-pub const MAP_POPULATE: ::c_int = 0x08000;
-pub const MAP_NONBLOCK: ::c_int = 0x010000;
-pub const MAP_STACK: ::c_int = 0x020000;
-pub const MAP_SYNC: ::c_int = 0x080000;
-
-pub const EDEADLOCK: ::c_int = 35;
-pub const EUCLEAN: ::c_int = 117;
-pub const ENOTNAM: ::c_int = 118;
-pub const ENAVAIL: ::c_int = 119;
-pub const EISNAM: ::c_int = 120;
-pub const EREMOTEIO: ::c_int = 121;
-
-pub const PTRACE_GETFPREGS: ::c_uint = 14;
-pub const PTRACE_SETFPREGS: ::c_uint = 15;
-pub const PTRACE_GETFPXREGS: ::c_uint = 18;
-pub const PTRACE_SETFPXREGS: ::c_uint = 19;
-pub const PTRACE_GETREGS: ::c_uint = 12;
-pub const PTRACE_SETREGS: ::c_uint = 13;
-pub const PTRACE_PEEKSIGINFO_SHARED: ::c_uint = 1;
-pub const PTRACE_SYSEMU: ::c_uint = 31;
-pub const PTRACE_SYSEMU_SINGLESTEP: ::c_uint = 32;
-
-pub const PR_GET_SPECULATION_CTRL: ::c_int = 52;
-pub const PR_SET_SPECULATION_CTRL: ::c_int = 53;
-pub const PR_SPEC_NOT_AFFECTED: ::c_uint = 0;
-pub const PR_SPEC_PRCTL: ::c_uint = 1 << 0;
-pub const PR_SPEC_ENABLE: ::c_uint = 1 << 1;
-pub const PR_SPEC_DISABLE: ::c_uint = 1 << 2;
-pub const PR_SPEC_FORCE_DISABLE: ::c_uint = 1 << 3;
-pub const PR_SPEC_DISABLE_NOEXEC: ::c_uint = 1 << 4;
-pub const PR_SPEC_STORE_BYPASS: ::c_int = 0;
-pub const PR_SPEC_INDIRECT_BRANCH: ::c_int = 1;
-// FIXME: perharps for later
-//pub const PR_SPEC_L1D_FLUSH: ::c_int = 2;
-
-pub const MCL_CURRENT: ::c_int = 0x0001;
-pub const MCL_FUTURE: ::c_int = 0x0002;
-
-pub const SIGSTKSZ: ::size_t = 8192;
-pub const MINSIGSTKSZ: ::size_t = 2048;
-pub const CBAUD: ::tcflag_t = 0o0010017;
-pub const TAB1: ::tcflag_t = 0x00000800;
-pub const TAB2: ::tcflag_t = 0x00001000;
-pub const TAB3: ::tcflag_t = 0x00001800;
-pub const CR1: ::tcflag_t = 0x00000200;
-pub const CR2: ::tcflag_t = 0x00000400;
-pub const CR3: ::tcflag_t = 0x00000600;
-pub const FF1: ::tcflag_t = 0x00008000;
-pub const BS1: ::tcflag_t = 0x00002000;
-pub const VT1: ::tcflag_t = 0x00004000;
-pub const VWERASE: usize = 14;
-pub const VREPRINT: usize = 12;
-pub const VSUSP: usize = 10;
-pub const VSTART: usize = 8;
-pub const VSTOP: usize = 9;
-pub const VDISCARD: usize = 13;
-pub const VTIME: usize = 5;
-pub const IXON: ::tcflag_t = 0x00000400;
-pub const IXOFF: ::tcflag_t = 0x00001000;
-pub const ONLCR: ::tcflag_t = 0x4;
-pub const CSIZE: ::tcflag_t = 0x00000030;
-pub const CS6: ::tcflag_t = 0x00000010;
-pub const CS7: ::tcflag_t = 0x00000020;
-pub const CS8: ::tcflag_t = 0x00000030;
-pub const CSTOPB: ::tcflag_t = 0x00000040;
-pub const CREAD: ::tcflag_t = 0x00000080;
-pub const PARENB: ::tcflag_t = 0x00000100;
-pub const PARODD: ::tcflag_t = 0x00000200;
-pub const HUPCL: ::tcflag_t = 0x00000400;
-pub const CLOCAL: ::tcflag_t = 0x00000800;
-pub const ECHOKE: ::tcflag_t = 0x00000800;
-pub const ECHOE: ::tcflag_t = 0x00000010;
-pub const ECHOK: ::tcflag_t = 0x00000020;
-pub const ECHONL: ::tcflag_t = 0x00000040;
-pub const ECHOPRT: ::tcflag_t = 0x00000400;
-pub const ECHOCTL: ::tcflag_t = 0x00000200;
-pub const ISIG: ::tcflag_t = 0x00000001;
-pub const ICANON: ::tcflag_t = 0x00000002;
-pub const PENDIN: ::tcflag_t = 0x00004000;
-pub const NOFLSH: ::tcflag_t = 0x00000080;
-pub const CIBAUD: ::tcflag_t = 0o02003600000;
-pub const CBAUDEX: ::tcflag_t = 0o010000;
-pub const VSWTC: usize = 7;
-pub const OLCUC: ::tcflag_t = 0o000002;
-pub const NLDLY: ::tcflag_t = 0o000400;
-pub const CRDLY: ::tcflag_t = 0o003000;
-pub const TABDLY: ::tcflag_t = 0o014000;
-pub const BSDLY: ::tcflag_t = 0o020000;
-pub const FFDLY: ::tcflag_t = 0o100000;
-pub const VTDLY: ::tcflag_t = 0o040000;
-pub const XTABS: ::tcflag_t = 0o014000;
-
-pub const B0: ::speed_t = 0o000000;
-pub const B50: ::speed_t = 0o000001;
-pub const B75: ::speed_t = 0o000002;
-pub const B110: ::speed_t = 0o000003;
-pub const B134: ::speed_t = 0o000004;
-pub const B150: ::speed_t = 0o000005;
-pub const B200: ::speed_t = 0o000006;
-pub const B300: ::speed_t = 0o000007;
-pub const B600: ::speed_t = 0o000010;
-pub const B1200: ::speed_t = 0o000011;
-pub const B1800: ::speed_t = 0o000012;
-pub const B2400: ::speed_t = 0o000013;
-pub const B4800: ::speed_t = 0o000014;
-pub const B9600: ::speed_t = 0o000015;
-pub const B19200: ::speed_t = 0o000016;
-pub const B38400: ::speed_t = 0o000017;
-pub const EXTA: ::speed_t = B19200;
-pub const EXTB: ::speed_t = B38400;
-pub const B57600: ::speed_t = 0o010001;
-pub const B115200: ::speed_t = 0o010002;
-pub const B230400: ::speed_t = 0o010003;
-pub const B460800: ::speed_t = 0o010004;
-pub const B500000: ::speed_t = 0o010005;
-pub const B576000: ::speed_t = 0o010006;
-pub const B921600: ::speed_t = 0o010007;
-pub const B1000000: ::speed_t = 0o010010;
-pub const B1152000: ::speed_t = 0o010011;
-pub const B1500000: ::speed_t = 0o010012;
-pub const B2000000: ::speed_t = 0o010013;
-pub const B2500000: ::speed_t = 0o010014;
-pub const B3000000: ::speed_t = 0o010015;
-pub const B3500000: ::speed_t = 0o010016;
-pub const B4000000: ::speed_t = 0o010017;
-
-pub const VEOL: usize = 11;
-pub const VEOL2: usize = 16;
-pub const VMIN: usize = 6;
-pub const IEXTEN: ::tcflag_t = 0x00008000;
-pub const TOSTOP: ::tcflag_t = 0x00000100;
-pub const FLUSHO: ::tcflag_t = 0x00001000;
-pub const EXTPROC: ::tcflag_t = 0x00010000;
-
-// offsets in user_regs_structs, from sys/reg.h
-pub const R15: ::c_int = 0;
-pub const R14: ::c_int = 1;
-pub const R13: ::c_int = 2;
-pub const R12: ::c_int = 3;
-pub const RBP: ::c_int = 4;
-pub const RBX: ::c_int = 5;
-pub const R11: ::c_int = 6;
-pub const R10: ::c_int = 7;
-pub const R9: ::c_int = 8;
-pub const R8: ::c_int = 9;
-pub const RAX: ::c_int = 10;
-pub const RCX: ::c_int = 11;
-pub const RDX: ::c_int = 12;
-pub const RSI: ::c_int = 13;
-pub const RDI: ::c_int = 14;
-pub const ORIG_RAX: ::c_int = 15;
-pub const RIP: ::c_int = 16;
-pub const CS: ::c_int = 17;
-pub const EFLAGS: ::c_int = 18;
-pub const RSP: ::c_int = 19;
-pub const SS: ::c_int = 20;
-pub const FS_BASE: ::c_int = 21;
-pub const GS_BASE: ::c_int = 22;
-pub const DS: ::c_int = 23;
-pub const ES: ::c_int = 24;
-pub const FS: ::c_int = 25;
-pub const GS: ::c_int = 26;
-
-// offsets in mcontext_t.gregs from sys/ucontext.h
-pub const REG_R8: ::c_int = 0;
-pub const REG_R9: ::c_int = 1;
-pub const REG_R10: ::c_int = 2;
-pub const REG_R11: ::c_int = 3;
-pub const REG_R12: ::c_int = 4;
-pub const REG_R13: ::c_int = 5;
-pub const REG_R14: ::c_int = 6;
-pub const REG_R15: ::c_int = 7;
-pub const REG_RDI: ::c_int = 8;
-pub const REG_RSI: ::c_int = 9;
-pub const REG_RBP: ::c_int = 10;
-pub const REG_RBX: ::c_int = 11;
-pub const REG_RDX: ::c_int = 12;
-pub const REG_RAX: ::c_int = 13;
-pub const REG_RCX: ::c_int = 14;
-pub const REG_RSP: ::c_int = 15;
-pub const REG_RIP: ::c_int = 16;
-pub const REG_EFL: ::c_int = 17;
-pub const REG_CSGSFS: ::c_int = 18;
-pub const REG_ERR: ::c_int = 19;
-pub const REG_TRAPNO: ::c_int = 20;
-pub const REG_OLDMASK: ::c_int = 21;
-pub const REG_CR2: ::c_int = 22;
-
-pub const SECCOMP_SET_MODE_STRICT: ::c_uint = 0;
-pub const SECCOMP_SET_MODE_FILTER: ::c_uint = 1;
-pub const SECCOMP_GET_ACTION_AVAIL: ::c_uint = 2;
-pub const SECCOMP_GET_NOTIF_SIZES: ::c_uint = 3;
-
-extern "C" {
-    pub fn getcontext(ucp: *mut ucontext_t) -> ::c_int;
-    pub fn setcontext(ucp: *const ucontext_t) -> ::c_int;
-    pub fn makecontext(ucp: *mut ucontext_t, func: extern "C" fn(), argc: ::c_int, ...);
-    pub fn swapcontext(uocp: *mut ucontext_t, ucp: *const ucontext_t) -> ::c_int;
-    pub fn iopl(level: ::c_int) -> ::c_int;
-    pub fn ioperm(from: ::c_ulong, num: ::c_ulong, turn_on: ::c_int) -> ::c_int;
-}
-
-cfg_if! {
-    if #[cfg(target_pointer_width = "32")] {
-        mod x32;
-        pub use self::x32::*;
-    } else {
-        mod not_x32;
-        pub use self::not_x32::*;
-    }
-}
-
-cfg_if! {
-    if #[cfg(libc_align)] {
-        mod align;
-        pub use self::align::*;
-    }
-}
-
-
\ No newline at end of file diff --git a/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs.html b/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs.html deleted file mode 100644 index fec9cfe..0000000 --- a/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs.html +++ /dev/null @@ -1,902 +0,0 @@ -not_x32.rs - source
1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
-21
-22
-23
-24
-25
-26
-27
-28
-29
-30
-31
-32
-33
-34
-35
-36
-37
-38
-39
-40
-41
-42
-43
-44
-45
-46
-47
-48
-49
-50
-51
-52
-53
-54
-55
-56
-57
-58
-59
-60
-61
-62
-63
-64
-65
-66
-67
-68
-69
-70
-71
-72
-73
-74
-75
-76
-77
-78
-79
-80
-81
-82
-83
-84
-85
-86
-87
-88
-89
-90
-91
-92
-93
-94
-95
-96
-97
-98
-99
-100
-101
-102
-103
-104
-105
-106
-107
-108
-109
-110
-111
-112
-113
-114
-115
-116
-117
-118
-119
-120
-121
-122
-123
-124
-125
-126
-127
-128
-129
-130
-131
-132
-133
-134
-135
-136
-137
-138
-139
-140
-141
-142
-143
-144
-145
-146
-147
-148
-149
-150
-151
-152
-153
-154
-155
-156
-157
-158
-159
-160
-161
-162
-163
-164
-165
-166
-167
-168
-169
-170
-171
-172
-173
-174
-175
-176
-177
-178
-179
-180
-181
-182
-183
-184
-185
-186
-187
-188
-189
-190
-191
-192
-193
-194
-195
-196
-197
-198
-199
-200
-201
-202
-203
-204
-205
-206
-207
-208
-209
-210
-211
-212
-213
-214
-215
-216
-217
-218
-219
-220
-221
-222
-223
-224
-225
-226
-227
-228
-229
-230
-231
-232
-233
-234
-235
-236
-237
-238
-239
-240
-241
-242
-243
-244
-245
-246
-247
-248
-249
-250
-251
-252
-253
-254
-255
-256
-257
-258
-259
-260
-261
-262
-263
-264
-265
-266
-267
-268
-269
-270
-271
-272
-273
-274
-275
-276
-277
-278
-279
-280
-281
-282
-283
-284
-285
-286
-287
-288
-289
-290
-291
-292
-293
-294
-295
-296
-297
-298
-299
-300
-301
-302
-303
-304
-305
-306
-307
-308
-309
-310
-311
-312
-313
-314
-315
-316
-317
-318
-319
-320
-321
-322
-323
-324
-325
-326
-327
-328
-329
-330
-331
-332
-333
-334
-335
-336
-337
-338
-339
-340
-341
-342
-343
-344
-345
-346
-347
-348
-349
-350
-351
-352
-353
-354
-355
-356
-357
-358
-359
-360
-361
-362
-363
-364
-365
-366
-367
-368
-369
-370
-371
-372
-373
-374
-375
-376
-377
-378
-379
-380
-381
-382
-383
-384
-385
-386
-387
-388
-389
-390
-391
-392
-393
-394
-395
-396
-397
-398
-399
-400
-401
-402
-403
-404
-405
-406
-407
-408
-409
-410
-411
-412
-413
-414
-415
-416
-417
-418
-419
-420
-421
-422
-423
-424
-425
-426
-427
-428
-429
-430
-431
-432
-433
-434
-435
-436
-437
-438
-439
-440
-441
-442
-443
-444
-445
-446
-447
-448
-449
-450
-
use pthread_mutex_t;
-
-pub type c_long = i64;
-pub type c_ulong = u64;
-
-s! {
-    pub struct statvfs {
-        pub f_bsize: ::c_ulong,
-        pub f_frsize: ::c_ulong,
-        pub f_blocks: ::fsblkcnt_t,
-        pub f_bfree: ::fsblkcnt_t,
-        pub f_bavail: ::fsblkcnt_t,
-        pub f_files: ::fsfilcnt_t,
-        pub f_ffree: ::fsfilcnt_t,
-        pub f_favail: ::fsfilcnt_t,
-        pub f_fsid: ::c_ulong,
-        pub f_flag: ::c_ulong,
-        pub f_namemax: ::c_ulong,
-        __f_spare: [::c_int; 6],
-    }
-}
-
-pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40;
-pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56;
-
-align_const! {
-    #[cfg(target_endian = "little")]
-    pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t =
-        pthread_mutex_t {
-            size: [
-                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
-                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            ],
-        };
-    #[cfg(target_endian = "little")]
-    pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t =
-        pthread_mutex_t {
-            size: [
-                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0,
-                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            ],
-        };
-    #[cfg(target_endian = "little")]
-    pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t =
-        pthread_mutex_t {
-            size: [
-                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0,
-                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            ],
-        };
-    #[cfg(target_endian = "big")]
-    pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t =
-        pthread_mutex_t {
-            size: [
-                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            ],
-        };
-    #[cfg(target_endian = "big")]
-    pub const PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: ::pthread_mutex_t =
-        pthread_mutex_t {
-            size: [
-                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0,
-                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            ],
-        };
-    #[cfg(target_endian = "big")]
-    pub const PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t =
-        pthread_mutex_t {
-            size: [
-                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0,
-                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            ],
-        };
-}
-
-// Syscall table
-
-pub const SYS_read: ::c_long = 0;
-pub const SYS_write: ::c_long = 1;
-pub const SYS_open: ::c_long = 2;
-pub const SYS_close: ::c_long = 3;
-pub const SYS_stat: ::c_long = 4;
-pub const SYS_fstat: ::c_long = 5;
-pub const SYS_lstat: ::c_long = 6;
-pub const SYS_poll: ::c_long = 7;
-pub const SYS_lseek: ::c_long = 8;
-pub const SYS_mmap: ::c_long = 9;
-pub const SYS_mprotect: ::c_long = 10;
-pub const SYS_munmap: ::c_long = 11;
-pub const SYS_brk: ::c_long = 12;
-pub const SYS_rt_sigaction: ::c_long = 13;
-pub const SYS_rt_sigprocmask: ::c_long = 14;
-pub const SYS_rt_sigreturn: ::c_long = 15;
-pub const SYS_ioctl: ::c_long = 16;
-pub const SYS_pread64: ::c_long = 17;
-pub const SYS_pwrite64: ::c_long = 18;
-pub const SYS_readv: ::c_long = 19;
-pub const SYS_writev: ::c_long = 20;
-pub const SYS_access: ::c_long = 21;
-pub const SYS_pipe: ::c_long = 22;
-pub const SYS_select: ::c_long = 23;
-pub const SYS_sched_yield: ::c_long = 24;
-pub const SYS_mremap: ::c_long = 25;
-pub const SYS_msync: ::c_long = 26;
-pub const SYS_mincore: ::c_long = 27;
-pub const SYS_madvise: ::c_long = 28;
-pub const SYS_shmget: ::c_long = 29;
-pub const SYS_shmat: ::c_long = 30;
-pub const SYS_shmctl: ::c_long = 31;
-pub const SYS_dup: ::c_long = 32;
-pub const SYS_dup2: ::c_long = 33;
-pub const SYS_pause: ::c_long = 34;
-pub const SYS_nanosleep: ::c_long = 35;
-pub const SYS_getitimer: ::c_long = 36;
-pub const SYS_alarm: ::c_long = 37;
-pub const SYS_setitimer: ::c_long = 38;
-pub const SYS_getpid: ::c_long = 39;
-pub const SYS_sendfile: ::c_long = 40;
-pub const SYS_socket: ::c_long = 41;
-pub const SYS_connect: ::c_long = 42;
-pub const SYS_accept: ::c_long = 43;
-pub const SYS_sendto: ::c_long = 44;
-pub const SYS_recvfrom: ::c_long = 45;
-pub const SYS_sendmsg: ::c_long = 46;
-pub const SYS_recvmsg: ::c_long = 47;
-pub const SYS_shutdown: ::c_long = 48;
-pub const SYS_bind: ::c_long = 49;
-pub const SYS_listen: ::c_long = 50;
-pub const SYS_getsockname: ::c_long = 51;
-pub const SYS_getpeername: ::c_long = 52;
-pub const SYS_socketpair: ::c_long = 53;
-pub const SYS_setsockopt: ::c_long = 54;
-pub const SYS_getsockopt: ::c_long = 55;
-pub const SYS_clone: ::c_long = 56;
-pub const SYS_fork: ::c_long = 57;
-pub const SYS_vfork: ::c_long = 58;
-pub const SYS_execve: ::c_long = 59;
-pub const SYS_exit: ::c_long = 60;
-pub const SYS_wait4: ::c_long = 61;
-pub const SYS_kill: ::c_long = 62;
-pub const SYS_uname: ::c_long = 63;
-pub const SYS_semget: ::c_long = 64;
-pub const SYS_semop: ::c_long = 65;
-pub const SYS_semctl: ::c_long = 66;
-pub const SYS_shmdt: ::c_long = 67;
-pub const SYS_msgget: ::c_long = 68;
-pub const SYS_msgsnd: ::c_long = 69;
-pub const SYS_msgrcv: ::c_long = 70;
-pub const SYS_msgctl: ::c_long = 71;
-pub const SYS_fcntl: ::c_long = 72;
-pub const SYS_flock: ::c_long = 73;
-pub const SYS_fsync: ::c_long = 74;
-pub const SYS_fdatasync: ::c_long = 75;
-pub const SYS_truncate: ::c_long = 76;
-pub const SYS_ftruncate: ::c_long = 77;
-pub const SYS_getdents: ::c_long = 78;
-pub const SYS_getcwd: ::c_long = 79;
-pub const SYS_chdir: ::c_long = 80;
-pub const SYS_fchdir: ::c_long = 81;
-pub const SYS_rename: ::c_long = 82;
-pub const SYS_mkdir: ::c_long = 83;
-pub const SYS_rmdir: ::c_long = 84;
-pub const SYS_creat: ::c_long = 85;
-pub const SYS_link: ::c_long = 86;
-pub const SYS_unlink: ::c_long = 87;
-pub const SYS_symlink: ::c_long = 88;
-pub const SYS_readlink: ::c_long = 89;
-pub const SYS_chmod: ::c_long = 90;
-pub const SYS_fchmod: ::c_long = 91;
-pub const SYS_chown: ::c_long = 92;
-pub const SYS_fchown: ::c_long = 93;
-pub const SYS_lchown: ::c_long = 94;
-pub const SYS_umask: ::c_long = 95;
-pub const SYS_gettimeofday: ::c_long = 96;
-pub const SYS_getrlimit: ::c_long = 97;
-pub const SYS_getrusage: ::c_long = 98;
-pub const SYS_sysinfo: ::c_long = 99;
-pub const SYS_times: ::c_long = 100;
-pub const SYS_ptrace: ::c_long = 101;
-pub const SYS_getuid: ::c_long = 102;
-pub const SYS_syslog: ::c_long = 103;
-pub const SYS_getgid: ::c_long = 104;
-pub const SYS_setuid: ::c_long = 105;
-pub const SYS_setgid: ::c_long = 106;
-pub const SYS_geteuid: ::c_long = 107;
-pub const SYS_getegid: ::c_long = 108;
-pub const SYS_setpgid: ::c_long = 109;
-pub const SYS_getppid: ::c_long = 110;
-pub const SYS_getpgrp: ::c_long = 111;
-pub const SYS_setsid: ::c_long = 112;
-pub const SYS_setreuid: ::c_long = 113;
-pub const SYS_setregid: ::c_long = 114;
-pub const SYS_getgroups: ::c_long = 115;
-pub const SYS_setgroups: ::c_long = 116;
-pub const SYS_setresuid: ::c_long = 117;
-pub const SYS_getresuid: ::c_long = 118;
-pub const SYS_setresgid: ::c_long = 119;
-pub const SYS_getresgid: ::c_long = 120;
-pub const SYS_getpgid: ::c_long = 121;
-pub const SYS_setfsuid: ::c_long = 122;
-pub const SYS_setfsgid: ::c_long = 123;
-pub const SYS_getsid: ::c_long = 124;
-pub const SYS_capget: ::c_long = 125;
-pub const SYS_capset: ::c_long = 126;
-pub const SYS_rt_sigpending: ::c_long = 127;
-pub const SYS_rt_sigtimedwait: ::c_long = 128;
-pub const SYS_rt_sigqueueinfo: ::c_long = 129;
-pub const SYS_rt_sigsuspend: ::c_long = 130;
-pub const SYS_sigaltstack: ::c_long = 131;
-pub const SYS_utime: ::c_long = 132;
-pub const SYS_mknod: ::c_long = 133;
-pub const SYS_uselib: ::c_long = 134;
-pub const SYS_personality: ::c_long = 135;
-pub const SYS_ustat: ::c_long = 136;
-pub const SYS_statfs: ::c_long = 137;
-pub const SYS_fstatfs: ::c_long = 138;
-pub const SYS_sysfs: ::c_long = 139;
-pub const SYS_getpriority: ::c_long = 140;
-pub const SYS_setpriority: ::c_long = 141;
-pub const SYS_sched_setparam: ::c_long = 142;
-pub const SYS_sched_getparam: ::c_long = 143;
-pub const SYS_sched_setscheduler: ::c_long = 144;
-pub const SYS_sched_getscheduler: ::c_long = 145;
-pub const SYS_sched_get_priority_max: ::c_long = 146;
-pub const SYS_sched_get_priority_min: ::c_long = 147;
-pub const SYS_sched_rr_get_interval: ::c_long = 148;
-pub const SYS_mlock: ::c_long = 149;
-pub const SYS_munlock: ::c_long = 150;
-pub const SYS_mlockall: ::c_long = 151;
-pub const SYS_munlockall: ::c_long = 152;
-pub const SYS_vhangup: ::c_long = 153;
-pub const SYS_modify_ldt: ::c_long = 154;
-pub const SYS_pivot_root: ::c_long = 155;
-pub const SYS__sysctl: ::c_long = 156;
-pub const SYS_prctl: ::c_long = 157;
-pub const SYS_arch_prctl: ::c_long = 158;
-pub const SYS_adjtimex: ::c_long = 159;
-pub const SYS_setrlimit: ::c_long = 160;
-pub const SYS_chroot: ::c_long = 161;
-pub const SYS_sync: ::c_long = 162;
-pub const SYS_acct: ::c_long = 163;
-pub const SYS_settimeofday: ::c_long = 164;
-pub const SYS_mount: ::c_long = 165;
-pub const SYS_umount2: ::c_long = 166;
-pub const SYS_swapon: ::c_long = 167;
-pub const SYS_swapoff: ::c_long = 168;
-pub const SYS_reboot: ::c_long = 169;
-pub const SYS_sethostname: ::c_long = 170;
-pub const SYS_setdomainname: ::c_long = 171;
-pub const SYS_iopl: ::c_long = 172;
-pub const SYS_ioperm: ::c_long = 173;
-pub const SYS_create_module: ::c_long = 174;
-pub const SYS_init_module: ::c_long = 175;
-pub const SYS_delete_module: ::c_long = 176;
-pub const SYS_get_kernel_syms: ::c_long = 177;
-pub const SYS_query_module: ::c_long = 178;
-pub const SYS_quotactl: ::c_long = 179;
-pub const SYS_nfsservctl: ::c_long = 180;
-pub const SYS_getpmsg: ::c_long = 181;
-pub const SYS_putpmsg: ::c_long = 182;
-pub const SYS_afs_syscall: ::c_long = 183;
-pub const SYS_tuxcall: ::c_long = 184;
-pub const SYS_security: ::c_long = 185;
-pub const SYS_gettid: ::c_long = 186;
-pub const SYS_readahead: ::c_long = 187;
-pub const SYS_setxattr: ::c_long = 188;
-pub const SYS_lsetxattr: ::c_long = 189;
-pub const SYS_fsetxattr: ::c_long = 190;
-pub const SYS_getxattr: ::c_long = 191;
-pub const SYS_lgetxattr: ::c_long = 192;
-pub const SYS_fgetxattr: ::c_long = 193;
-pub const SYS_listxattr: ::c_long = 194;
-pub const SYS_llistxattr: ::c_long = 195;
-pub const SYS_flistxattr: ::c_long = 196;
-pub const SYS_removexattr: ::c_long = 197;
-pub const SYS_lremovexattr: ::c_long = 198;
-pub const SYS_fremovexattr: ::c_long = 199;
-pub const SYS_tkill: ::c_long = 200;
-pub const SYS_time: ::c_long = 201;
-pub const SYS_futex: ::c_long = 202;
-pub const SYS_sched_setaffinity: ::c_long = 203;
-pub const SYS_sched_getaffinity: ::c_long = 204;
-pub const SYS_set_thread_area: ::c_long = 205;
-pub const SYS_io_setup: ::c_long = 206;
-pub const SYS_io_destroy: ::c_long = 207;
-pub const SYS_io_getevents: ::c_long = 208;
-pub const SYS_io_submit: ::c_long = 209;
-pub const SYS_io_cancel: ::c_long = 210;
-pub const SYS_get_thread_area: ::c_long = 211;
-pub const SYS_lookup_dcookie: ::c_long = 212;
-pub const SYS_epoll_create: ::c_long = 213;
-pub const SYS_epoll_ctl_old: ::c_long = 214;
-pub const SYS_epoll_wait_old: ::c_long = 215;
-pub const SYS_remap_file_pages: ::c_long = 216;
-pub const SYS_getdents64: ::c_long = 217;
-pub const SYS_set_tid_address: ::c_long = 218;
-pub const SYS_restart_syscall: ::c_long = 219;
-pub const SYS_semtimedop: ::c_long = 220;
-pub const SYS_fadvise64: ::c_long = 221;
-pub const SYS_timer_create: ::c_long = 222;
-pub const SYS_timer_settime: ::c_long = 223;
-pub const SYS_timer_gettime: ::c_long = 224;
-pub const SYS_timer_getoverrun: ::c_long = 225;
-pub const SYS_timer_delete: ::c_long = 226;
-pub const SYS_clock_settime: ::c_long = 227;
-pub const SYS_clock_gettime: ::c_long = 228;
-pub const SYS_clock_getres: ::c_long = 229;
-pub const SYS_clock_nanosleep: ::c_long = 230;
-pub const SYS_exit_group: ::c_long = 231;
-pub const SYS_epoll_wait: ::c_long = 232;
-pub const SYS_epoll_ctl: ::c_long = 233;
-pub const SYS_tgkill: ::c_long = 234;
-pub const SYS_utimes: ::c_long = 235;
-pub const SYS_vserver: ::c_long = 236;
-pub const SYS_mbind: ::c_long = 237;
-pub const SYS_set_mempolicy: ::c_long = 238;
-pub const SYS_get_mempolicy: ::c_long = 239;
-pub const SYS_mq_open: ::c_long = 240;
-pub const SYS_mq_unlink: ::c_long = 241;
-pub const SYS_mq_timedsend: ::c_long = 242;
-pub const SYS_mq_timedreceive: ::c_long = 243;
-pub const SYS_mq_notify: ::c_long = 244;
-pub const SYS_mq_getsetattr: ::c_long = 245;
-pub const SYS_kexec_load: ::c_long = 246;
-pub const SYS_waitid: ::c_long = 247;
-pub const SYS_add_key: ::c_long = 248;
-pub const SYS_request_key: ::c_long = 249;
-pub const SYS_keyctl: ::c_long = 250;
-pub const SYS_ioprio_set: ::c_long = 251;
-pub const SYS_ioprio_get: ::c_long = 252;
-pub const SYS_inotify_init: ::c_long = 253;
-pub const SYS_inotify_add_watch: ::c_long = 254;
-pub const SYS_inotify_rm_watch: ::c_long = 255;
-pub const SYS_migrate_pages: ::c_long = 256;
-pub const SYS_openat: ::c_long = 257;
-pub const SYS_mkdirat: ::c_long = 258;
-pub const SYS_mknodat: ::c_long = 259;
-pub const SYS_fchownat: ::c_long = 260;
-pub const SYS_futimesat: ::c_long = 261;
-pub const SYS_newfstatat: ::c_long = 262;
-pub const SYS_unlinkat: ::c_long = 263;
-pub const SYS_renameat: ::c_long = 264;
-pub const SYS_linkat: ::c_long = 265;
-pub const SYS_symlinkat: ::c_long = 266;
-pub const SYS_readlinkat: ::c_long = 267;
-pub const SYS_fchmodat: ::c_long = 268;
-pub const SYS_faccessat: ::c_long = 269;
-pub const SYS_pselect6: ::c_long = 270;
-pub const SYS_ppoll: ::c_long = 271;
-pub const SYS_unshare: ::c_long = 272;
-pub const SYS_set_robust_list: ::c_long = 273;
-pub const SYS_get_robust_list: ::c_long = 274;
-pub const SYS_splice: ::c_long = 275;
-pub const SYS_tee: ::c_long = 276;
-pub const SYS_sync_file_range: ::c_long = 277;
-pub const SYS_vmsplice: ::c_long = 278;
-pub const SYS_move_pages: ::c_long = 279;
-pub const SYS_utimensat: ::c_long = 280;
-pub const SYS_epoll_pwait: ::c_long = 281;
-pub const SYS_signalfd: ::c_long = 282;
-pub const SYS_timerfd_create: ::c_long = 283;
-pub const SYS_eventfd: ::c_long = 284;
-pub const SYS_fallocate: ::c_long = 285;
-pub const SYS_timerfd_settime: ::c_long = 286;
-pub const SYS_timerfd_gettime: ::c_long = 287;
-pub const SYS_accept4: ::c_long = 288;
-pub const SYS_signalfd4: ::c_long = 289;
-pub const SYS_eventfd2: ::c_long = 290;
-pub const SYS_epoll_create1: ::c_long = 291;
-pub const SYS_dup3: ::c_long = 292;
-pub const SYS_pipe2: ::c_long = 293;
-pub const SYS_inotify_init1: ::c_long = 294;
-pub const SYS_preadv: ::c_long = 295;
-pub const SYS_pwritev: ::c_long = 296;
-pub const SYS_rt_tgsigqueueinfo: ::c_long = 297;
-pub const SYS_perf_event_open: ::c_long = 298;
-pub const SYS_recvmmsg: ::c_long = 299;
-pub const SYS_fanotify_init: ::c_long = 300;
-pub const SYS_fanotify_mark: ::c_long = 301;
-pub const SYS_prlimit64: ::c_long = 302;
-pub const SYS_name_to_handle_at: ::c_long = 303;
-pub const SYS_open_by_handle_at: ::c_long = 304;
-pub const SYS_clock_adjtime: ::c_long = 305;
-pub const SYS_syncfs: ::c_long = 306;
-pub const SYS_sendmmsg: ::c_long = 307;
-pub const SYS_setns: ::c_long = 308;
-pub const SYS_getcpu: ::c_long = 309;
-pub const SYS_process_vm_readv: ::c_long = 310;
-pub const SYS_process_vm_writev: ::c_long = 311;
-pub const SYS_kcmp: ::c_long = 312;
-pub const SYS_finit_module: ::c_long = 313;
-pub const SYS_sched_setattr: ::c_long = 314;
-pub const SYS_sched_getattr: ::c_long = 315;
-pub const SYS_renameat2: ::c_long = 316;
-pub const SYS_seccomp: ::c_long = 317;
-pub const SYS_getrandom: ::c_long = 318;
-pub const SYS_memfd_create: ::c_long = 319;
-pub const SYS_kexec_file_load: ::c_long = 320;
-pub const SYS_bpf: ::c_long = 321;
-pub const SYS_execveat: ::c_long = 322;
-pub const SYS_userfaultfd: ::c_long = 323;
-pub const SYS_membarrier: ::c_long = 324;
-pub const SYS_mlock2: ::c_long = 325;
-pub const SYS_copy_file_range: ::c_long = 326;
-pub const SYS_preadv2: ::c_long = 327;
-pub const SYS_pwritev2: ::c_long = 328;
-pub const SYS_pkey_mprotect: ::c_long = 329;
-pub const SYS_pkey_alloc: ::c_long = 330;
-pub const SYS_pkey_free: ::c_long = 331;
-pub const SYS_statx: ::c_long = 332;
-pub const SYS_rseq: ::c_long = 334;
-pub const SYS_pidfd_send_signal: ::c_long = 424;
-pub const SYS_io_uring_setup: ::c_long = 425;
-pub const SYS_io_uring_enter: ::c_long = 426;
-pub const SYS_io_uring_register: ::c_long = 427;
-pub const SYS_open_tree: ::c_long = 428;
-pub const SYS_move_mount: ::c_long = 429;
-pub const SYS_fsopen: ::c_long = 430;
-pub const SYS_fsconfig: ::c_long = 431;
-pub const SYS_fsmount: ::c_long = 432;
-pub const SYS_fspick: ::c_long = 433;
-pub const SYS_pidfd_open: ::c_long = 434;
-pub const SYS_clone3: ::c_long = 435;
-pub const SYS_close_range: ::c_long = 436;
-pub const SYS_openat2: ::c_long = 437;
-pub const SYS_pidfd_getfd: ::c_long = 438;
-pub const SYS_faccessat2: ::c_long = 439;
-pub const SYS_process_madvise: ::c_long = 440;
-pub const SYS_epoll_pwait2: ::c_long = 441;
-pub const SYS_mount_setattr: ::c_long = 442;
-pub const SYS_quotactl_fd: ::c_long = 443;
-pub const SYS_landlock_create_ruleset: ::c_long = 444;
-pub const SYS_landlock_add_rule: ::c_long = 445;
-pub const SYS_landlock_restrict_self: ::c_long = 446;
-pub const SYS_memfd_secret: ::c_long = 447;
-pub const SYS_process_mrelease: ::c_long = 448;
-pub const SYS_futex_waitv: ::c_long = 449;
-pub const SYS_set_mempolicy_home_node: ::c_long = 450;
-
-extern "C" {
-    pub fn sysctl(
-        name: *mut ::c_int,
-        namelen: ::c_int,
-        oldp: *mut ::c_void,
-        oldlenp: *mut ::size_t,
-        newp: *mut ::c_void,
-        newlen: ::size_t,
-    ) -> ::c_int;
-}
-
-
\ No newline at end of file diff --git a/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/linux_like/linux/gnu/mod.rs.html b/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/linux_like/linux/gnu/mod.rs.html deleted file mode 100644 index edcd3db..0000000 --- a/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/linux_like/linux/gnu/mod.rs.html +++ /dev/null @@ -1,2820 +0,0 @@ -mod.rs - source
1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
-21
-22
-23
-24
-25
-26
-27
-28
-29
-30
-31
-32
-33
-34
-35
-36
-37
-38
-39
-40
-41
-42
-43
-44
-45
-46
-47
-48
-49
-50
-51
-52
-53
-54
-55
-56
-57
-58
-59
-60
-61
-62
-63
-64
-65
-66
-67
-68
-69
-70
-71
-72
-73
-74
-75
-76
-77
-78
-79
-80
-81
-82
-83
-84
-85
-86
-87
-88
-89
-90
-91
-92
-93
-94
-95
-96
-97
-98
-99
-100
-101
-102
-103
-104
-105
-106
-107
-108
-109
-110
-111
-112
-113
-114
-115
-116
-117
-118
-119
-120
-121
-122
-123
-124
-125
-126
-127
-128
-129
-130
-131
-132
-133
-134
-135
-136
-137
-138
-139
-140
-141
-142
-143
-144
-145
-146
-147
-148
-149
-150
-151
-152
-153
-154
-155
-156
-157
-158
-159
-160
-161
-162
-163
-164
-165
-166
-167
-168
-169
-170
-171
-172
-173
-174
-175
-176
-177
-178
-179
-180
-181
-182
-183
-184
-185
-186
-187
-188
-189
-190
-191
-192
-193
-194
-195
-196
-197
-198
-199
-200
-201
-202
-203
-204
-205
-206
-207
-208
-209
-210
-211
-212
-213
-214
-215
-216
-217
-218
-219
-220
-221
-222
-223
-224
-225
-226
-227
-228
-229
-230
-231
-232
-233
-234
-235
-236
-237
-238
-239
-240
-241
-242
-243
-244
-245
-246
-247
-248
-249
-250
-251
-252
-253
-254
-255
-256
-257
-258
-259
-260
-261
-262
-263
-264
-265
-266
-267
-268
-269
-270
-271
-272
-273
-274
-275
-276
-277
-278
-279
-280
-281
-282
-283
-284
-285
-286
-287
-288
-289
-290
-291
-292
-293
-294
-295
-296
-297
-298
-299
-300
-301
-302
-303
-304
-305
-306
-307
-308
-309
-310
-311
-312
-313
-314
-315
-316
-317
-318
-319
-320
-321
-322
-323
-324
-325
-326
-327
-328
-329
-330
-331
-332
-333
-334
-335
-336
-337
-338
-339
-340
-341
-342
-343
-344
-345
-346
-347
-348
-349
-350
-351
-352
-353
-354
-355
-356
-357
-358
-359
-360
-361
-362
-363
-364
-365
-366
-367
-368
-369
-370
-371
-372
-373
-374
-375
-376
-377
-378
-379
-380
-381
-382
-383
-384
-385
-386
-387
-388
-389
-390
-391
-392
-393
-394
-395
-396
-397
-398
-399
-400
-401
-402
-403
-404
-405
-406
-407
-408
-409
-410
-411
-412
-413
-414
-415
-416
-417
-418
-419
-420
-421
-422
-423
-424
-425
-426
-427
-428
-429
-430
-431
-432
-433
-434
-435
-436
-437
-438
-439
-440
-441
-442
-443
-444
-445
-446
-447
-448
-449
-450
-451
-452
-453
-454
-455
-456
-457
-458
-459
-460
-461
-462
-463
-464
-465
-466
-467
-468
-469
-470
-471
-472
-473
-474
-475
-476
-477
-478
-479
-480
-481
-482
-483
-484
-485
-486
-487
-488
-489
-490
-491
-492
-493
-494
-495
-496
-497
-498
-499
-500
-501
-502
-503
-504
-505
-506
-507
-508
-509
-510
-511
-512
-513
-514
-515
-516
-517
-518
-519
-520
-521
-522
-523
-524
-525
-526
-527
-528
-529
-530
-531
-532
-533
-534
-535
-536
-537
-538
-539
-540
-541
-542
-543
-544
-545
-546
-547
-548
-549
-550
-551
-552
-553
-554
-555
-556
-557
-558
-559
-560
-561
-562
-563
-564
-565
-566
-567
-568
-569
-570
-571
-572
-573
-574
-575
-576
-577
-578
-579
-580
-581
-582
-583
-584
-585
-586
-587
-588
-589
-590
-591
-592
-593
-594
-595
-596
-597
-598
-599
-600
-601
-602
-603
-604
-605
-606
-607
-608
-609
-610
-611
-612
-613
-614
-615
-616
-617
-618
-619
-620
-621
-622
-623
-624
-625
-626
-627
-628
-629
-630
-631
-632
-633
-634
-635
-636
-637
-638
-639
-640
-641
-642
-643
-644
-645
-646
-647
-648
-649
-650
-651
-652
-653
-654
-655
-656
-657
-658
-659
-660
-661
-662
-663
-664
-665
-666
-667
-668
-669
-670
-671
-672
-673
-674
-675
-676
-677
-678
-679
-680
-681
-682
-683
-684
-685
-686
-687
-688
-689
-690
-691
-692
-693
-694
-695
-696
-697
-698
-699
-700
-701
-702
-703
-704
-705
-706
-707
-708
-709
-710
-711
-712
-713
-714
-715
-716
-717
-718
-719
-720
-721
-722
-723
-724
-725
-726
-727
-728
-729
-730
-731
-732
-733
-734
-735
-736
-737
-738
-739
-740
-741
-742
-743
-744
-745
-746
-747
-748
-749
-750
-751
-752
-753
-754
-755
-756
-757
-758
-759
-760
-761
-762
-763
-764
-765
-766
-767
-768
-769
-770
-771
-772
-773
-774
-775
-776
-777
-778
-779
-780
-781
-782
-783
-784
-785
-786
-787
-788
-789
-790
-791
-792
-793
-794
-795
-796
-797
-798
-799
-800
-801
-802
-803
-804
-805
-806
-807
-808
-809
-810
-811
-812
-813
-814
-815
-816
-817
-818
-819
-820
-821
-822
-823
-824
-825
-826
-827
-828
-829
-830
-831
-832
-833
-834
-835
-836
-837
-838
-839
-840
-841
-842
-843
-844
-845
-846
-847
-848
-849
-850
-851
-852
-853
-854
-855
-856
-857
-858
-859
-860
-861
-862
-863
-864
-865
-866
-867
-868
-869
-870
-871
-872
-873
-874
-875
-876
-877
-878
-879
-880
-881
-882
-883
-884
-885
-886
-887
-888
-889
-890
-891
-892
-893
-894
-895
-896
-897
-898
-899
-900
-901
-902
-903
-904
-905
-906
-907
-908
-909
-910
-911
-912
-913
-914
-915
-916
-917
-918
-919
-920
-921
-922
-923
-924
-925
-926
-927
-928
-929
-930
-931
-932
-933
-934
-935
-936
-937
-938
-939
-940
-941
-942
-943
-944
-945
-946
-947
-948
-949
-950
-951
-952
-953
-954
-955
-956
-957
-958
-959
-960
-961
-962
-963
-964
-965
-966
-967
-968
-969
-970
-971
-972
-973
-974
-975
-976
-977
-978
-979
-980
-981
-982
-983
-984
-985
-986
-987
-988
-989
-990
-991
-992
-993
-994
-995
-996
-997
-998
-999
-1000
-1001
-1002
-1003
-1004
-1005
-1006
-1007
-1008
-1009
-1010
-1011
-1012
-1013
-1014
-1015
-1016
-1017
-1018
-1019
-1020
-1021
-1022
-1023
-1024
-1025
-1026
-1027
-1028
-1029
-1030
-1031
-1032
-1033
-1034
-1035
-1036
-1037
-1038
-1039
-1040
-1041
-1042
-1043
-1044
-1045
-1046
-1047
-1048
-1049
-1050
-1051
-1052
-1053
-1054
-1055
-1056
-1057
-1058
-1059
-1060
-1061
-1062
-1063
-1064
-1065
-1066
-1067
-1068
-1069
-1070
-1071
-1072
-1073
-1074
-1075
-1076
-1077
-1078
-1079
-1080
-1081
-1082
-1083
-1084
-1085
-1086
-1087
-1088
-1089
-1090
-1091
-1092
-1093
-1094
-1095
-1096
-1097
-1098
-1099
-1100
-1101
-1102
-1103
-1104
-1105
-1106
-1107
-1108
-1109
-1110
-1111
-1112
-1113
-1114
-1115
-1116
-1117
-1118
-1119
-1120
-1121
-1122
-1123
-1124
-1125
-1126
-1127
-1128
-1129
-1130
-1131
-1132
-1133
-1134
-1135
-1136
-1137
-1138
-1139
-1140
-1141
-1142
-1143
-1144
-1145
-1146
-1147
-1148
-1149
-1150
-1151
-1152
-1153
-1154
-1155
-1156
-1157
-1158
-1159
-1160
-1161
-1162
-1163
-1164
-1165
-1166
-1167
-1168
-1169
-1170
-1171
-1172
-1173
-1174
-1175
-1176
-1177
-1178
-1179
-1180
-1181
-1182
-1183
-1184
-1185
-1186
-1187
-1188
-1189
-1190
-1191
-1192
-1193
-1194
-1195
-1196
-1197
-1198
-1199
-1200
-1201
-1202
-1203
-1204
-1205
-1206
-1207
-1208
-1209
-1210
-1211
-1212
-1213
-1214
-1215
-1216
-1217
-1218
-1219
-1220
-1221
-1222
-1223
-1224
-1225
-1226
-1227
-1228
-1229
-1230
-1231
-1232
-1233
-1234
-1235
-1236
-1237
-1238
-1239
-1240
-1241
-1242
-1243
-1244
-1245
-1246
-1247
-1248
-1249
-1250
-1251
-1252
-1253
-1254
-1255
-1256
-1257
-1258
-1259
-1260
-1261
-1262
-1263
-1264
-1265
-1266
-1267
-1268
-1269
-1270
-1271
-1272
-1273
-1274
-1275
-1276
-1277
-1278
-1279
-1280
-1281
-1282
-1283
-1284
-1285
-1286
-1287
-1288
-1289
-1290
-1291
-1292
-1293
-1294
-1295
-1296
-1297
-1298
-1299
-1300
-1301
-1302
-1303
-1304
-1305
-1306
-1307
-1308
-1309
-1310
-1311
-1312
-1313
-1314
-1315
-1316
-1317
-1318
-1319
-1320
-1321
-1322
-1323
-1324
-1325
-1326
-1327
-1328
-1329
-1330
-1331
-1332
-1333
-1334
-1335
-1336
-1337
-1338
-1339
-1340
-1341
-1342
-1343
-1344
-1345
-1346
-1347
-1348
-1349
-1350
-1351
-1352
-1353
-1354
-1355
-1356
-1357
-1358
-1359
-1360
-1361
-1362
-1363
-1364
-1365
-1366
-1367
-1368
-1369
-1370
-1371
-1372
-1373
-1374
-1375
-1376
-1377
-1378
-1379
-1380
-1381
-1382
-1383
-1384
-1385
-1386
-1387
-1388
-1389
-1390
-1391
-1392
-1393
-1394
-1395
-1396
-1397
-1398
-1399
-1400
-1401
-1402
-1403
-1404
-1405
-1406
-1407
-1408
-1409
-
pub type pthread_t = c_ulong;
-pub type __priority_which_t = ::c_uint;
-pub type __rlimit_resource_t = ::c_uint;
-pub type Lmid_t = ::c_long;
-pub type regoff_t = ::c_int;
-
-cfg_if! {
-    if #[cfg(doc)] {
-        // Used in `linux::arch` to define ioctl constants.
-        pub(crate) type Ioctl = ::c_ulong;
-    } else {
-        #[doc(hidden)]
-        pub type Ioctl = ::c_ulong;
-    }
-}
-
-s! {
-    pub struct statx {
-        pub stx_mask: u32,
-        pub stx_blksize: u32,
-        pub stx_attributes: u64,
-        pub stx_nlink: u32,
-        pub stx_uid: u32,
-        pub stx_gid: u32,
-        pub stx_mode: u16,
-        __statx_pad1: [u16; 1],
-        pub stx_ino: u64,
-        pub stx_size: u64,
-        pub stx_blocks: u64,
-        pub stx_attributes_mask: u64,
-        pub stx_atime: ::statx_timestamp,
-        pub stx_btime: ::statx_timestamp,
-        pub stx_ctime: ::statx_timestamp,
-        pub stx_mtime: ::statx_timestamp,
-        pub stx_rdev_major: u32,
-        pub stx_rdev_minor: u32,
-        pub stx_dev_major: u32,
-        pub stx_dev_minor: u32,
-        pub stx_mnt_id: u64,
-        __statx_pad2: u64,
-        __statx_pad3: [u64; 12],
-    }
-
-    pub struct statx_timestamp {
-        pub tv_sec: i64,
-        pub tv_nsec: u32,
-        pub __statx_timestamp_pad1: [i32; 1],
-    }
-
-    pub struct aiocb {
-        pub aio_fildes: ::c_int,
-        pub aio_lio_opcode: ::c_int,
-        pub aio_reqprio: ::c_int,
-        pub aio_buf: *mut ::c_void,
-        pub aio_nbytes: ::size_t,
-        pub aio_sigevent: ::sigevent,
-        __next_prio: *mut aiocb,
-        __abs_prio: ::c_int,
-        __policy: ::c_int,
-        __error_code: ::c_int,
-        __return_value: ::ssize_t,
-        pub aio_offset: off_t,
-        #[cfg(all(not(target_arch = "x86_64"), target_pointer_width = "32"))]
-        __unused1: [::c_char; 4],
-        __glibc_reserved: [::c_char; 32]
-    }
-
-    pub struct __exit_status {
-        pub e_termination: ::c_short,
-        pub e_exit: ::c_short,
-    }
-
-    pub struct __timeval {
-        pub tv_sec: i32,
-        pub tv_usec: i32,
-    }
-
-    pub struct glob64_t {
-        pub gl_pathc: ::size_t,
-        pub gl_pathv: *mut *mut ::c_char,
-        pub gl_offs: ::size_t,
-        pub gl_flags: ::c_int,
-
-        __unused1: *mut ::c_void,
-        __unused2: *mut ::c_void,
-        __unused3: *mut ::c_void,
-        __unused4: *mut ::c_void,
-        __unused5: *mut ::c_void,
-    }
-
-    pub struct msghdr {
-        pub msg_name: *mut ::c_void,
-        pub msg_namelen: ::socklen_t,
-        pub msg_iov: *mut ::iovec,
-        pub msg_iovlen: ::size_t,
-        pub msg_control: *mut ::c_void,
-        pub msg_controllen: ::size_t,
-        pub msg_flags: ::c_int,
-    }
-
-    pub struct cmsghdr {
-        pub cmsg_len: ::size_t,
-        pub cmsg_level: ::c_int,
-        pub cmsg_type: ::c_int,
-    }
-
-    pub struct termios {
-        pub c_iflag: ::tcflag_t,
-        pub c_oflag: ::tcflag_t,
-        pub c_cflag: ::tcflag_t,
-        pub c_lflag: ::tcflag_t,
-        pub c_line: ::cc_t,
-        pub c_cc: [::cc_t; ::NCCS],
-        #[cfg(not(any(
-            target_arch = "sparc",
-            target_arch = "sparc64",
-            target_arch = "mips",
-            target_arch = "mips64")))]
-        pub c_ispeed: ::speed_t,
-        #[cfg(not(any(
-            target_arch = "sparc",
-            target_arch = "sparc64",
-            target_arch = "mips",
-            target_arch = "mips64")))]
-        pub c_ospeed: ::speed_t,
-    }
-
-    pub struct mallinfo {
-        pub arena: ::c_int,
-        pub ordblks: ::c_int,
-        pub smblks: ::c_int,
-        pub hblks: ::c_int,
-        pub hblkhd: ::c_int,
-        pub usmblks: ::c_int,
-        pub fsmblks: ::c_int,
-        pub uordblks: ::c_int,
-        pub fordblks: ::c_int,
-        pub keepcost: ::c_int,
-    }
-
-    pub struct mallinfo2 {
-        pub arena: ::size_t,
-        pub ordblks: ::size_t,
-        pub smblks: ::size_t,
-        pub hblks: ::size_t,
-        pub hblkhd: ::size_t,
-        pub usmblks: ::size_t,
-        pub fsmblks: ::size_t,
-        pub uordblks: ::size_t,
-        pub fordblks: ::size_t,
-        pub keepcost: ::size_t,
-    }
-
-    pub struct nl_pktinfo {
-        pub group: u32,
-    }
-
-    pub struct nl_mmap_req {
-        pub nm_block_size: ::c_uint,
-        pub nm_block_nr: ::c_uint,
-        pub nm_frame_size: ::c_uint,
-        pub nm_frame_nr: ::c_uint,
-    }
-
-    pub struct nl_mmap_hdr {
-        pub nm_status: ::c_uint,
-        pub nm_len: ::c_uint,
-        pub nm_group: u32,
-        pub nm_pid: u32,
-        pub nm_uid: u32,
-        pub nm_gid: u32,
-    }
-
-    pub struct rtentry {
-        pub rt_pad1: ::c_ulong,
-        pub rt_dst: ::sockaddr,
-        pub rt_gateway: ::sockaddr,
-        pub rt_genmask: ::sockaddr,
-        pub rt_flags: ::c_ushort,
-        pub rt_pad2: ::c_short,
-        pub rt_pad3: ::c_ulong,
-        pub rt_tos: ::c_uchar,
-        pub rt_class: ::c_uchar,
-        #[cfg(target_pointer_width = "64")]
-        pub rt_pad4: [::c_short; 3usize],
-        #[cfg(not(target_pointer_width = "64"))]
-        pub rt_pad4: ::c_short,
-        pub rt_metric: ::c_short,
-        pub rt_dev: *mut ::c_char,
-        pub rt_mtu: ::c_ulong,
-        pub rt_window: ::c_ulong,
-        pub rt_irtt: ::c_ushort,
-    }
-
-    pub struct timex {
-        pub modes: ::c_uint,
-        #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
-        pub offset: i64,
-        #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
-        pub offset: ::c_long,
-        #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
-        pub freq: i64,
-        #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
-        pub freq: ::c_long,
-        #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
-        pub maxerror: i64,
-        #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
-        pub maxerror: ::c_long,
-        #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
-        pub esterror: i64,
-        #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
-        pub esterror: ::c_long,
-        pub status: ::c_int,
-        #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
-        pub constant: i64,
-        #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
-        pub constant: ::c_long,
-        #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
-        pub precision: i64,
-        #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
-        pub precision: ::c_long,
-        #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
-        pub tolerance: i64,
-        #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
-        pub tolerance: ::c_long,
-        pub time: ::timeval,
-        #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
-        pub tick: i64,
-        #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
-        pub tick: ::c_long,
-        #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
-        pub ppsfreq: i64,
-        #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
-        pub ppsfreq: ::c_long,
-        #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
-        pub jitter: i64,
-        #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
-        pub jitter: ::c_long,
-        pub shift: ::c_int,
-        #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
-        pub stabil: i64,
-        #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
-        pub stabil: ::c_long,
-        #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
-        pub jitcnt: i64,
-        #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
-        pub jitcnt: ::c_long,
-        #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
-        pub calcnt: i64,
-        #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
-        pub calcnt: ::c_long,
-        #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
-        pub errcnt: i64,
-        #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
-        pub errcnt: ::c_long,
-        #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
-        pub stbcnt: i64,
-        #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
-        pub stbcnt: ::c_long,
-        pub tai: ::c_int,
-        pub __unused1: i32,
-        pub __unused2: i32,
-        pub __unused3: i32,
-        pub __unused4: i32,
-        pub __unused5: i32,
-        pub __unused6: i32,
-        pub __unused7: i32,
-        pub __unused8: i32,
-        pub __unused9: i32,
-        pub __unused10: i32,
-        pub __unused11: i32,
-    }
-
-    pub struct ntptimeval {
-        pub time: ::timeval,
-        pub maxerror: ::c_long,
-        pub esterror: ::c_long,
-        pub tai: ::c_long,
-        pub __glibc_reserved1: ::c_long,
-        pub __glibc_reserved2: ::c_long,
-        pub __glibc_reserved3: ::c_long,
-        pub __glibc_reserved4: ::c_long,
-    }
-
-    pub struct regex_t {
-        __buffer: *mut ::c_void,
-        __allocated: ::size_t,
-        __used: ::size_t,
-        __syntax: ::c_ulong,
-        __fastmap: *mut ::c_char,
-        __translate: *mut ::c_char,
-        __re_nsub: ::size_t,
-        __bitfield: u8,
-    }
-
-    pub struct Elf64_Chdr {
-        pub ch_type: ::Elf64_Word,
-        pub ch_reserved: ::Elf64_Word,
-        pub ch_size: ::Elf64_Xword,
-        pub ch_addralign: ::Elf64_Xword,
-    }
-
-    pub struct Elf32_Chdr {
-        pub ch_type: ::Elf32_Word,
-        pub ch_size: ::Elf32_Word,
-        pub ch_addralign: ::Elf32_Word,
-    }
-
-    pub struct seminfo {
-        pub semmap: ::c_int,
-        pub semmni: ::c_int,
-        pub semmns: ::c_int,
-        pub semmnu: ::c_int,
-        pub semmsl: ::c_int,
-        pub semopm: ::c_int,
-        pub semume: ::c_int,
-        pub semusz: ::c_int,
-        pub semvmx: ::c_int,
-        pub semaem: ::c_int,
-    }
-
-    pub struct ptrace_peeksiginfo_args {
-        pub off: ::__u64,
-        pub flags: ::__u32,
-        pub nr: ::__s32,
-    }
-
-    pub struct __c_anonymous_ptrace_syscall_info_entry {
-        pub nr: ::__u64,
-        pub args: [::__u64; 6],
-    }
-
-    pub struct __c_anonymous_ptrace_syscall_info_exit {
-        pub sval: ::__s64,
-        pub is_error: ::__u8,
-    }
-
-    pub struct __c_anonymous_ptrace_syscall_info_seccomp {
-        pub nr: ::__u64,
-        pub args: [::__u64; 6],
-        pub ret_data: ::__u32,
-    }
-
-    pub struct ptrace_syscall_info {
-        pub op: ::__u8,
-        pub pad: [::__u8; 3],
-        pub arch: ::__u32,
-        pub instruction_pointer: ::__u64,
-        pub stack_pointer: ::__u64,
-        #[cfg(libc_union)]
-        pub u: __c_anonymous_ptrace_syscall_info_data,
-    }
-}
-
-impl siginfo_t {
-    pub unsafe fn si_addr(&self) -> *mut ::c_void {
-        #[repr(C)]
-        struct siginfo_sigfault {
-            _si_signo: ::c_int,
-            _si_errno: ::c_int,
-            _si_code: ::c_int,
-            si_addr: *mut ::c_void,
-        }
-        (*(self as *const siginfo_t as *const siginfo_sigfault)).si_addr
-    }
-
-    pub unsafe fn si_value(&self) -> ::sigval {
-        #[repr(C)]
-        struct siginfo_timer {
-            _si_signo: ::c_int,
-            _si_errno: ::c_int,
-            _si_code: ::c_int,
-            _si_tid: ::c_int,
-            _si_overrun: ::c_int,
-            si_sigval: ::sigval,
-        }
-        (*(self as *const siginfo_t as *const siginfo_timer)).si_sigval
-    }
-}
-
-cfg_if! {
-    if #[cfg(libc_union)] {
-        // Internal, for casts to access union fields
-        #[repr(C)]
-        struct sifields_sigchld {
-            si_pid: ::pid_t,
-            si_uid: ::uid_t,
-            si_status: ::c_int,
-            si_utime: ::c_long,
-            si_stime: ::c_long,
-        }
-        impl ::Copy for sifields_sigchld {}
-        impl ::Clone for sifields_sigchld {
-            fn clone(&self) -> sifields_sigchld {
-                *self
-            }
-        }
-
-        // Internal, for casts to access union fields
-        #[repr(C)]
-        union sifields {
-            _align_pointer: *mut ::c_void,
-            sigchld: sifields_sigchld,
-        }
-
-        // Internal, for casts to access union fields. Note that some variants
-        // of sifields start with a pointer, which makes the alignment of
-        // sifields vary on 32-bit and 64-bit architectures.
-        #[repr(C)]
-        struct siginfo_f {
-            _siginfo_base: [::c_int; 3],
-            sifields: sifields,
-        }
-
-        impl siginfo_t {
-            unsafe fn sifields(&self) -> &sifields {
-                &(*(self as *const siginfo_t as *const siginfo_f)).sifields
-            }
-
-            pub unsafe fn si_pid(&self) -> ::pid_t {
-                self.sifields().sigchld.si_pid
-            }
-
-            pub unsafe fn si_uid(&self) -> ::uid_t {
-                self.sifields().sigchld.si_uid
-            }
-
-            pub unsafe fn si_status(&self) -> ::c_int {
-                self.sifields().sigchld.si_status
-            }
-
-            pub unsafe fn si_utime(&self) -> ::c_long {
-                self.sifields().sigchld.si_utime
-            }
-
-            pub unsafe fn si_stime(&self) -> ::c_long {
-                self.sifields().sigchld.si_stime
-            }
-        }
-
-        pub union __c_anonymous_ptrace_syscall_info_data {
-            pub entry: __c_anonymous_ptrace_syscall_info_entry,
-            pub exit: __c_anonymous_ptrace_syscall_info_exit,
-            pub seccomp: __c_anonymous_ptrace_syscall_info_seccomp,
-        }
-        impl ::Copy for __c_anonymous_ptrace_syscall_info_data {}
-        impl ::Clone for __c_anonymous_ptrace_syscall_info_data {
-            fn clone(&self) -> __c_anonymous_ptrace_syscall_info_data {
-                *self
-            }
-        }
-    }
-}
-
-s_no_extra_traits! {
-    pub struct utmpx {
-        pub ut_type: ::c_short,
-        pub ut_pid: ::pid_t,
-        pub ut_line: [::c_char; __UT_LINESIZE],
-        pub ut_id: [::c_char; 4],
-
-        pub ut_user: [::c_char; __UT_NAMESIZE],
-        pub ut_host: [::c_char; __UT_HOSTSIZE],
-        pub ut_exit: __exit_status,
-
-        #[cfg(any(target_arch = "aarch64",
-                  target_arch = "s390x",
-                  target_arch = "loongarch64",
-                  all(target_pointer_width = "32",
-                      not(target_arch = "x86_64"))))]
-        pub ut_session: ::c_long,
-        #[cfg(any(target_arch = "aarch64",
-                  target_arch = "s390x",
-                  target_arch = "loongarch64",
-                  all(target_pointer_width = "32",
-                      not(target_arch = "x86_64"))))]
-        pub ut_tv: ::timeval,
-
-        #[cfg(not(any(target_arch = "aarch64",
-                      target_arch = "s390x",
-                      target_arch = "loongarch64",
-                      all(target_pointer_width = "32",
-                          not(target_arch = "x86_64")))))]
-        pub ut_session: i32,
-        #[cfg(not(any(target_arch = "aarch64",
-                      target_arch = "s390x",
-                      target_arch = "loongarch64",
-                      all(target_pointer_width = "32",
-                          not(target_arch = "x86_64")))))]
-        pub ut_tv: __timeval,
-
-        pub ut_addr_v6: [i32; 4],
-        __glibc_reserved: [::c_char; 20],
-    }
-}
-
-cfg_if! {
-    if #[cfg(feature = "extra_traits")] {
-        impl PartialEq for utmpx {
-            fn eq(&self, other: &utmpx) -> bool {
-                self.ut_type == other.ut_type
-                    && self.ut_pid == other.ut_pid
-                    && self.ut_line == other.ut_line
-                    && self.ut_id == other.ut_id
-                    && self.ut_user == other.ut_user
-                    && self
-                    .ut_host
-                    .iter()
-                    .zip(other.ut_host.iter())
-                    .all(|(a,b)| a == b)
-                    && self.ut_exit == other.ut_exit
-                    && self.ut_session == other.ut_session
-                    && self.ut_tv == other.ut_tv
-                    && self.ut_addr_v6 == other.ut_addr_v6
-                    && self.__glibc_reserved == other.__glibc_reserved
-            }
-        }
-
-        impl Eq for utmpx {}
-
-        impl ::fmt::Debug for utmpx {
-            fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
-                f.debug_struct("utmpx")
-                    .field("ut_type", &self.ut_type)
-                    .field("ut_pid", &self.ut_pid)
-                    .field("ut_line", &self.ut_line)
-                    .field("ut_id", &self.ut_id)
-                    .field("ut_user", &self.ut_user)
-                // FIXME: .field("ut_host", &self.ut_host)
-                    .field("ut_exit", &self.ut_exit)
-                    .field("ut_session", &self.ut_session)
-                    .field("ut_tv", &self.ut_tv)
-                    .field("ut_addr_v6", &self.ut_addr_v6)
-                    .field("__glibc_reserved", &self.__glibc_reserved)
-                    .finish()
-            }
-        }
-
-        impl ::hash::Hash for utmpx {
-            fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
-                self.ut_type.hash(state);
-                self.ut_pid.hash(state);
-                self.ut_line.hash(state);
-                self.ut_id.hash(state);
-                self.ut_user.hash(state);
-                self.ut_host.hash(state);
-                self.ut_exit.hash(state);
-                self.ut_session.hash(state);
-                self.ut_tv.hash(state);
-                self.ut_addr_v6.hash(state);
-                self.__glibc_reserved.hash(state);
-            }
-        }
-
-        #[cfg(libc_union)]
-        impl PartialEq for __c_anonymous_ptrace_syscall_info_data {
-            fn eq(&self, other: &__c_anonymous_ptrace_syscall_info_data) -> bool {
-                unsafe {
-                self.entry == other.entry ||
-                    self.exit == other.exit ||
-                    self.seccomp == other.seccomp
-                }
-            }
-        }
-
-        #[cfg(libc_union)]
-        impl Eq for __c_anonymous_ptrace_syscall_info_data {}
-
-        #[cfg(libc_union)]
-        impl ::fmt::Debug for __c_anonymous_ptrace_syscall_info_data {
-            fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
-                unsafe {
-                f.debug_struct("__c_anonymous_ptrace_syscall_info_data")
-                    .field("entry", &self.entry)
-                    .field("exit", &self.exit)
-                    .field("seccomp", &self.seccomp)
-                    .finish()
-                }
-            }
-        }
-
-        #[cfg(libc_union)]
-        impl ::hash::Hash for __c_anonymous_ptrace_syscall_info_data {
-            fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
-                unsafe {
-                self.entry.hash(state);
-                self.exit.hash(state);
-                self.seccomp.hash(state);
-                }
-            }
-        }
-    }
-}
-
-// include/uapi/asm-generic/hugetlb_encode.h
-pub const HUGETLB_FLAG_ENCODE_SHIFT: ::c_int = 26;
-pub const HUGETLB_FLAG_ENCODE_MASK: ::c_int = 0x3f;
-
-pub const HUGETLB_FLAG_ENCODE_64KB: ::c_int = 16 << HUGETLB_FLAG_ENCODE_SHIFT;
-pub const HUGETLB_FLAG_ENCODE_512KB: ::c_int = 19 << HUGETLB_FLAG_ENCODE_SHIFT;
-pub const HUGETLB_FLAG_ENCODE_1MB: ::c_int = 20 << HUGETLB_FLAG_ENCODE_SHIFT;
-pub const HUGETLB_FLAG_ENCODE_2MB: ::c_int = 21 << HUGETLB_FLAG_ENCODE_SHIFT;
-pub const HUGETLB_FLAG_ENCODE_8MB: ::c_int = 23 << HUGETLB_FLAG_ENCODE_SHIFT;
-pub const HUGETLB_FLAG_ENCODE_16MB: ::c_int = 24 << HUGETLB_FLAG_ENCODE_SHIFT;
-pub const HUGETLB_FLAG_ENCODE_32MB: ::c_int = 25 << HUGETLB_FLAG_ENCODE_SHIFT;
-pub const HUGETLB_FLAG_ENCODE_256MB: ::c_int = 28 << HUGETLB_FLAG_ENCODE_SHIFT;
-pub const HUGETLB_FLAG_ENCODE_512MB: ::c_int = 29 << HUGETLB_FLAG_ENCODE_SHIFT;
-pub const HUGETLB_FLAG_ENCODE_1GB: ::c_int = 30 << HUGETLB_FLAG_ENCODE_SHIFT;
-pub const HUGETLB_FLAG_ENCODE_2GB: ::c_int = 31 << HUGETLB_FLAG_ENCODE_SHIFT;
-pub const HUGETLB_FLAG_ENCODE_16GB: ::c_int = 34 << HUGETLB_FLAG_ENCODE_SHIFT;
-
-// include/uapi/linux/mman.h
-/*
- * Huge page size encoding when MAP_HUGETLB is specified, and a huge page
- * size other than the default is desired.  See hugetlb_encode.h.
- * All known huge page size encodings are provided here.  It is the
- * responsibility of the application to know which sizes are supported on
- * the running system.  See mmap(2) man page for details.
- */
-pub const MAP_HUGE_SHIFT: ::c_int = HUGETLB_FLAG_ENCODE_SHIFT;
-pub const MAP_HUGE_MASK: ::c_int = HUGETLB_FLAG_ENCODE_MASK;
-
-pub const MAP_HUGE_64KB: ::c_int = HUGETLB_FLAG_ENCODE_64KB;
-pub const MAP_HUGE_512KB: ::c_int = HUGETLB_FLAG_ENCODE_512KB;
-pub const MAP_HUGE_1MB: ::c_int = HUGETLB_FLAG_ENCODE_1MB;
-pub const MAP_HUGE_2MB: ::c_int = HUGETLB_FLAG_ENCODE_2MB;
-pub const MAP_HUGE_8MB: ::c_int = HUGETLB_FLAG_ENCODE_8MB;
-pub const MAP_HUGE_16MB: ::c_int = HUGETLB_FLAG_ENCODE_16MB;
-pub const MAP_HUGE_32MB: ::c_int = HUGETLB_FLAG_ENCODE_32MB;
-pub const MAP_HUGE_256MB: ::c_int = HUGETLB_FLAG_ENCODE_256MB;
-pub const MAP_HUGE_512MB: ::c_int = HUGETLB_FLAG_ENCODE_512MB;
-pub const MAP_HUGE_1GB: ::c_int = HUGETLB_FLAG_ENCODE_1GB;
-pub const MAP_HUGE_2GB: ::c_int = HUGETLB_FLAG_ENCODE_2GB;
-pub const MAP_HUGE_16GB: ::c_int = HUGETLB_FLAG_ENCODE_16GB;
-
-pub const PRIO_PROCESS: ::__priority_which_t = 0;
-pub const PRIO_PGRP: ::__priority_which_t = 1;
-pub const PRIO_USER: ::__priority_which_t = 2;
-
-pub const MS_RMT_MASK: ::c_ulong = 0x02800051;
-
-pub const __UT_LINESIZE: usize = 32;
-pub const __UT_NAMESIZE: usize = 32;
-pub const __UT_HOSTSIZE: usize = 256;
-pub const EMPTY: ::c_short = 0;
-pub const RUN_LVL: ::c_short = 1;
-pub const BOOT_TIME: ::c_short = 2;
-pub const NEW_TIME: ::c_short = 3;
-pub const OLD_TIME: ::c_short = 4;
-pub const INIT_PROCESS: ::c_short = 5;
-pub const LOGIN_PROCESS: ::c_short = 6;
-pub const USER_PROCESS: ::c_short = 7;
-pub const DEAD_PROCESS: ::c_short = 8;
-pub const ACCOUNTING: ::c_short = 9;
-
-// dlfcn.h
-pub const LM_ID_BASE: ::c_long = 0;
-pub const LM_ID_NEWLM: ::c_long = -1;
-
-pub const RTLD_DI_LMID: ::c_int = 1;
-pub const RTLD_DI_LINKMAP: ::c_int = 2;
-pub const RTLD_DI_CONFIGADDR: ::c_int = 3;
-pub const RTLD_DI_SERINFO: ::c_int = 4;
-pub const RTLD_DI_SERINFOSIZE: ::c_int = 5;
-pub const RTLD_DI_ORIGIN: ::c_int = 6;
-pub const RTLD_DI_PROFILENAME: ::c_int = 7;
-pub const RTLD_DI_PROFILEOUT: ::c_int = 8;
-pub const RTLD_DI_TLS_MODID: ::c_int = 9;
-pub const RTLD_DI_TLS_DATA: ::c_int = 10;
-
-pub const SOCK_NONBLOCK: ::c_int = O_NONBLOCK;
-pub const PIDFD_NONBLOCK: ::c_uint = O_NONBLOCK as ::c_uint;
-
-pub const SOL_RXRPC: ::c_int = 272;
-pub const SOL_PPPOL2TP: ::c_int = 273;
-pub const SOL_PNPIPE: ::c_int = 275;
-pub const SOL_RDS: ::c_int = 276;
-pub const SOL_IUCV: ::c_int = 277;
-pub const SOL_CAIF: ::c_int = 278;
-pub const SOL_NFC: ::c_int = 280;
-pub const SOL_XDP: ::c_int = 283;
-
-pub const MSG_TRYHARD: ::c_int = 4;
-
-pub const LC_PAPER: ::c_int = 7;
-pub const LC_NAME: ::c_int = 8;
-pub const LC_ADDRESS: ::c_int = 9;
-pub const LC_TELEPHONE: ::c_int = 10;
-pub const LC_MEASUREMENT: ::c_int = 11;
-pub const LC_IDENTIFICATION: ::c_int = 12;
-pub const LC_PAPER_MASK: ::c_int = 1 << LC_PAPER;
-pub const LC_NAME_MASK: ::c_int = 1 << LC_NAME;
-pub const LC_ADDRESS_MASK: ::c_int = 1 << LC_ADDRESS;
-pub const LC_TELEPHONE_MASK: ::c_int = 1 << LC_TELEPHONE;
-pub const LC_MEASUREMENT_MASK: ::c_int = 1 << LC_MEASUREMENT;
-pub const LC_IDENTIFICATION_MASK: ::c_int = 1 << LC_IDENTIFICATION;
-pub const LC_ALL_MASK: ::c_int = ::LC_CTYPE_MASK
-    | ::LC_NUMERIC_MASK
-    | ::LC_TIME_MASK
-    | ::LC_COLLATE_MASK
-    | ::LC_MONETARY_MASK
-    | ::LC_MESSAGES_MASK
-    | LC_PAPER_MASK
-    | LC_NAME_MASK
-    | LC_ADDRESS_MASK
-    | LC_TELEPHONE_MASK
-    | LC_MEASUREMENT_MASK
-    | LC_IDENTIFICATION_MASK;
-
-pub const ENOTSUP: ::c_int = EOPNOTSUPP;
-
-pub const SOCK_SEQPACKET: ::c_int = 5;
-pub const SOCK_DCCP: ::c_int = 6;
-pub const SOCK_PACKET: ::c_int = 10;
-
-pub const FAN_MARK_INODE: ::c_uint = 0x0000_0000;
-pub const FAN_MARK_MOUNT: ::c_uint = 0x0000_0010;
-// NOTE: FAN_MARK_FILESYSTEM requires Linux Kernel >= 4.20.0
-pub const FAN_MARK_FILESYSTEM: ::c_uint = 0x0000_0100;
-
-pub const AF_IB: ::c_int = 27;
-pub const AF_MPLS: ::c_int = 28;
-pub const AF_NFC: ::c_int = 39;
-pub const AF_VSOCK: ::c_int = 40;
-pub const AF_XDP: ::c_int = 44;
-pub const PF_IB: ::c_int = AF_IB;
-pub const PF_MPLS: ::c_int = AF_MPLS;
-pub const PF_NFC: ::c_int = AF_NFC;
-pub const PF_VSOCK: ::c_int = AF_VSOCK;
-pub const PF_XDP: ::c_int = AF_XDP;
-
-/* DCCP socket options */
-pub const DCCP_SOCKOPT_PACKET_SIZE: ::c_int = 1;
-pub const DCCP_SOCKOPT_SERVICE: ::c_int = 2;
-pub const DCCP_SOCKOPT_CHANGE_L: ::c_int = 3;
-pub const DCCP_SOCKOPT_CHANGE_R: ::c_int = 4;
-pub const DCCP_SOCKOPT_GET_CUR_MPS: ::c_int = 5;
-pub const DCCP_SOCKOPT_SERVER_TIMEWAIT: ::c_int = 6;
-pub const DCCP_SOCKOPT_SEND_CSCOV: ::c_int = 10;
-pub const DCCP_SOCKOPT_RECV_CSCOV: ::c_int = 11;
-pub const DCCP_SOCKOPT_AVAILABLE_CCIDS: ::c_int = 12;
-pub const DCCP_SOCKOPT_CCID: ::c_int = 13;
-pub const DCCP_SOCKOPT_TX_CCID: ::c_int = 14;
-pub const DCCP_SOCKOPT_RX_CCID: ::c_int = 15;
-pub const DCCP_SOCKOPT_QPOLICY_ID: ::c_int = 16;
-pub const DCCP_SOCKOPT_QPOLICY_TXQLEN: ::c_int = 17;
-pub const DCCP_SOCKOPT_CCID_RX_INFO: ::c_int = 128;
-pub const DCCP_SOCKOPT_CCID_TX_INFO: ::c_int = 192;
-
-/// maximum number of services provided on the same listening port
-pub const DCCP_SERVICE_LIST_MAX_LEN: ::c_int = 32;
-
-pub const SIGEV_THREAD_ID: ::c_int = 4;
-
-pub const BUFSIZ: ::c_uint = 8192;
-pub const TMP_MAX: ::c_uint = 238328;
-pub const FOPEN_MAX: ::c_uint = 16;
-pub const FILENAME_MAX: ::c_uint = 4096;
-pub const POSIX_MADV_DONTNEED: ::c_int = 4;
-pub const _SC_EQUIV_CLASS_MAX: ::c_int = 41;
-pub const _SC_CHARCLASS_NAME_MAX: ::c_int = 45;
-pub const _SC_PII: ::c_int = 53;
-pub const _SC_PII_XTI: ::c_int = 54;
-pub const _SC_PII_SOCKET: ::c_int = 55;
-pub const _SC_PII_INTERNET: ::c_int = 56;
-pub const _SC_PII_OSI: ::c_int = 57;
-pub const _SC_POLL: ::c_int = 58;
-pub const _SC_SELECT: ::c_int = 59;
-pub const _SC_PII_INTERNET_STREAM: ::c_int = 61;
-pub const _SC_PII_INTERNET_DGRAM: ::c_int = 62;
-pub const _SC_PII_OSI_COTS: ::c_int = 63;
-pub const _SC_PII_OSI_CLTS: ::c_int = 64;
-pub const _SC_PII_OSI_M: ::c_int = 65;
-pub const _SC_T_IOV_MAX: ::c_int = 66;
-pub const _SC_2_C_VERSION: ::c_int = 96;
-pub const _SC_CHAR_BIT: ::c_int = 101;
-pub const _SC_CHAR_MAX: ::c_int = 102;
-pub const _SC_CHAR_MIN: ::c_int = 103;
-pub const _SC_INT_MAX: ::c_int = 104;
-pub const _SC_INT_MIN: ::c_int = 105;
-pub const _SC_LONG_BIT: ::c_int = 106;
-pub const _SC_WORD_BIT: ::c_int = 107;
-pub const _SC_MB_LEN_MAX: ::c_int = 108;
-pub const _SC_SSIZE_MAX: ::c_int = 110;
-pub const _SC_SCHAR_MAX: ::c_int = 111;
-pub const _SC_SCHAR_MIN: ::c_int = 112;
-pub const _SC_SHRT_MAX: ::c_int = 113;
-pub const _SC_SHRT_MIN: ::c_int = 114;
-pub const _SC_UCHAR_MAX: ::c_int = 115;
-pub const _SC_UINT_MAX: ::c_int = 116;
-pub const _SC_ULONG_MAX: ::c_int = 117;
-pub const _SC_USHRT_MAX: ::c_int = 118;
-pub const _SC_NL_ARGMAX: ::c_int = 119;
-pub const _SC_NL_LANGMAX: ::c_int = 120;
-pub const _SC_NL_MSGMAX: ::c_int = 121;
-pub const _SC_NL_NMAX: ::c_int = 122;
-pub const _SC_NL_SETMAX: ::c_int = 123;
-pub const _SC_NL_TEXTMAX: ::c_int = 124;
-pub const _SC_BASE: ::c_int = 134;
-pub const _SC_C_LANG_SUPPORT: ::c_int = 135;
-pub const _SC_C_LANG_SUPPORT_R: ::c_int = 136;
-pub const _SC_DEVICE_IO: ::c_int = 140;
-pub const _SC_DEVICE_SPECIFIC: ::c_int = 141;
-pub const _SC_DEVICE_SPECIFIC_R: ::c_int = 142;
-pub const _SC_FD_MGMT: ::c_int = 143;
-pub const _SC_FIFO: ::c_int = 144;
-pub const _SC_PIPE: ::c_int = 145;
-pub const _SC_FILE_ATTRIBUTES: ::c_int = 146;
-pub const _SC_FILE_LOCKING: ::c_int = 147;
-pub const _SC_FILE_SYSTEM: ::c_int = 148;
-pub const _SC_MULTI_PROCESS: ::c_int = 150;
-pub const _SC_SINGLE_PROCESS: ::c_int = 151;
-pub const _SC_NETWORKING: ::c_int = 152;
-pub const _SC_REGEX_VERSION: ::c_int = 156;
-pub const _SC_SIGNALS: ::c_int = 158;
-pub const _SC_SYSTEM_DATABASE: ::c_int = 162;
-pub const _SC_SYSTEM_DATABASE_R: ::c_int = 163;
-pub const _SC_USER_GROUPS: ::c_int = 166;
-pub const _SC_USER_GROUPS_R: ::c_int = 167;
-pub const _SC_LEVEL1_ICACHE_SIZE: ::c_int = 185;
-pub const _SC_LEVEL1_ICACHE_ASSOC: ::c_int = 186;
-pub const _SC_LEVEL1_ICACHE_LINESIZE: ::c_int = 187;
-pub const _SC_LEVEL1_DCACHE_SIZE: ::c_int = 188;
-pub const _SC_LEVEL1_DCACHE_ASSOC: ::c_int = 189;
-pub const _SC_LEVEL1_DCACHE_LINESIZE: ::c_int = 190;
-pub const _SC_LEVEL2_CACHE_SIZE: ::c_int = 191;
-pub const _SC_LEVEL2_CACHE_ASSOC: ::c_int = 192;
-pub const _SC_LEVEL2_CACHE_LINESIZE: ::c_int = 193;
-pub const _SC_LEVEL3_CACHE_SIZE: ::c_int = 194;
-pub const _SC_LEVEL3_CACHE_ASSOC: ::c_int = 195;
-pub const _SC_LEVEL3_CACHE_LINESIZE: ::c_int = 196;
-pub const _SC_LEVEL4_CACHE_SIZE: ::c_int = 197;
-pub const _SC_LEVEL4_CACHE_ASSOC: ::c_int = 198;
-pub const _SC_LEVEL4_CACHE_LINESIZE: ::c_int = 199;
-pub const O_ACCMODE: ::c_int = 3;
-pub const ST_RELATIME: ::c_ulong = 4096;
-pub const NI_MAXHOST: ::socklen_t = 1025;
-
-// Most `*_SUPER_MAGIC` constants are defined at the `linux_like` level; the
-// following are only available on newer Linux versions than the versions
-// currently used in CI in some configurations, so we define them here.
-cfg_if! {
-    if #[cfg(not(target_arch = "s390x"))] {
-        pub const BINDERFS_SUPER_MAGIC: ::c_long = 0x6c6f6f70;
-        pub const XFS_SUPER_MAGIC: ::c_long = 0x58465342;
-    } else if #[cfg(target_arch = "s390x")] {
-        pub const BINDERFS_SUPER_MAGIC: ::c_uint = 0x6c6f6f70;
-        pub const XFS_SUPER_MAGIC: ::c_uint = 0x58465342;
-    }
-}
-
-pub const CPU_SETSIZE: ::c_int = 0x400;
-
-pub const PTRACE_TRACEME: ::c_uint = 0;
-pub const PTRACE_PEEKTEXT: ::c_uint = 1;
-pub const PTRACE_PEEKDATA: ::c_uint = 2;
-pub const PTRACE_PEEKUSER: ::c_uint = 3;
-pub const PTRACE_POKETEXT: ::c_uint = 4;
-pub const PTRACE_POKEDATA: ::c_uint = 5;
-pub const PTRACE_POKEUSER: ::c_uint = 6;
-pub const PTRACE_CONT: ::c_uint = 7;
-pub const PTRACE_KILL: ::c_uint = 8;
-pub const PTRACE_SINGLESTEP: ::c_uint = 9;
-pub const PTRACE_ATTACH: ::c_uint = 16;
-pub const PTRACE_SYSCALL: ::c_uint = 24;
-pub const PTRACE_SETOPTIONS: ::c_uint = 0x4200;
-pub const PTRACE_GETEVENTMSG: ::c_uint = 0x4201;
-pub const PTRACE_GETSIGINFO: ::c_uint = 0x4202;
-pub const PTRACE_SETSIGINFO: ::c_uint = 0x4203;
-pub const PTRACE_GETREGSET: ::c_uint = 0x4204;
-pub const PTRACE_SETREGSET: ::c_uint = 0x4205;
-pub const PTRACE_SEIZE: ::c_uint = 0x4206;
-pub const PTRACE_INTERRUPT: ::c_uint = 0x4207;
-pub const PTRACE_LISTEN: ::c_uint = 0x4208;
-pub const PTRACE_PEEKSIGINFO: ::c_uint = 0x4209;
-pub const PTRACE_GET_SYSCALL_INFO: ::c_uint = 0x420e;
-
-// linux/fs.h
-
-// Flags for preadv2/pwritev2
-pub const RWF_HIPRI: ::c_int = 0x00000001;
-pub const RWF_DSYNC: ::c_int = 0x00000002;
-pub const RWF_SYNC: ::c_int = 0x00000004;
-pub const RWF_NOWAIT: ::c_int = 0x00000008;
-pub const RWF_APPEND: ::c_int = 0x00000010;
-
-// linux/rtnetlink.h
-pub const TCA_PAD: ::c_ushort = 9;
-pub const TCA_DUMP_INVISIBLE: ::c_ushort = 10;
-pub const TCA_CHAIN: ::c_ushort = 11;
-pub const TCA_HW_OFFLOAD: ::c_ushort = 12;
-
-pub const RTM_DELNETCONF: u16 = 81;
-pub const RTM_NEWSTATS: u16 = 92;
-pub const RTM_GETSTATS: u16 = 94;
-pub const RTM_NEWCACHEREPORT: u16 = 96;
-
-pub const RTM_F_LOOKUP_TABLE: ::c_uint = 0x1000;
-pub const RTM_F_FIB_MATCH: ::c_uint = 0x2000;
-
-pub const RTA_VIA: ::c_ushort = 18;
-pub const RTA_NEWDST: ::c_ushort = 19;
-pub const RTA_PREF: ::c_ushort = 20;
-pub const RTA_ENCAP_TYPE: ::c_ushort = 21;
-pub const RTA_ENCAP: ::c_ushort = 22;
-pub const RTA_EXPIRES: ::c_ushort = 23;
-pub const RTA_PAD: ::c_ushort = 24;
-pub const RTA_UID: ::c_ushort = 25;
-pub const RTA_TTL_PROPAGATE: ::c_ushort = 26;
-
-// linux/neighbor.h
-pub const NTF_EXT_LEARNED: u8 = 0x10;
-pub const NTF_OFFLOADED: u8 = 0x20;
-
-pub const NDA_MASTER: ::c_ushort = 9;
-pub const NDA_LINK_NETNSID: ::c_ushort = 10;
-pub const NDA_SRC_VNI: ::c_ushort = 11;
-
-// linux/personality.h
-pub const UNAME26: ::c_int = 0x0020000;
-pub const FDPIC_FUNCPTRS: ::c_int = 0x0080000;
-
-// linux/if_addr.h
-pub const IFA_FLAGS: ::c_ushort = 8;
-
-pub const IFA_F_MANAGETEMPADDR: u32 = 0x100;
-pub const IFA_F_NOPREFIXROUTE: u32 = 0x200;
-pub const IFA_F_MCAUTOJOIN: u32 = 0x400;
-pub const IFA_F_STABLE_PRIVACY: u32 = 0x800;
-
-pub const MAX_LINKS: ::c_int = 32;
-
-pub const GENL_UNS_ADMIN_PERM: ::c_int = 0x10;
-
-pub const GENL_ID_VFS_DQUOT: ::c_int = ::NLMSG_MIN_TYPE + 1;
-pub const GENL_ID_PMCRAID: ::c_int = ::NLMSG_MIN_TYPE + 2;
-
-// elf.h
-pub const NT_PRSTATUS: ::c_int = 1;
-pub const NT_PRFPREG: ::c_int = 2;
-pub const NT_FPREGSET: ::c_int = 2;
-pub const NT_PRPSINFO: ::c_int = 3;
-pub const NT_PRXREG: ::c_int = 4;
-pub const NT_TASKSTRUCT: ::c_int = 4;
-pub const NT_PLATFORM: ::c_int = 5;
-pub const NT_AUXV: ::c_int = 6;
-pub const NT_GWINDOWS: ::c_int = 7;
-pub const NT_ASRS: ::c_int = 8;
-pub const NT_PSTATUS: ::c_int = 10;
-pub const NT_PSINFO: ::c_int = 13;
-pub const NT_PRCRED: ::c_int = 14;
-pub const NT_UTSNAME: ::c_int = 15;
-pub const NT_LWPSTATUS: ::c_int = 16;
-pub const NT_LWPSINFO: ::c_int = 17;
-pub const NT_PRFPXREG: ::c_int = 20;
-
-pub const ELFOSABI_ARM_AEABI: u8 = 64;
-
-// linux/keyctl.h
-pub const KEYCTL_DH_COMPUTE: u32 = 23;
-pub const KEYCTL_PKEY_QUERY: u32 = 24;
-pub const KEYCTL_PKEY_ENCRYPT: u32 = 25;
-pub const KEYCTL_PKEY_DECRYPT: u32 = 26;
-pub const KEYCTL_PKEY_SIGN: u32 = 27;
-pub const KEYCTL_PKEY_VERIFY: u32 = 28;
-pub const KEYCTL_RESTRICT_KEYRING: u32 = 29;
-
-pub const KEYCTL_SUPPORTS_ENCRYPT: u32 = 0x01;
-pub const KEYCTL_SUPPORTS_DECRYPT: u32 = 0x02;
-pub const KEYCTL_SUPPORTS_SIGN: u32 = 0x04;
-pub const KEYCTL_SUPPORTS_VERIFY: u32 = 0x08;
-cfg_if! {
-    if #[cfg(not(any(target_arch="mips", target_arch="mips64")))] {
-        pub const KEYCTL_MOVE: u32 = 30;
-        pub const KEYCTL_CAPABILITIES: u32 = 31;
-
-        pub const KEYCTL_CAPS0_CAPABILITIES: u32 = 0x01;
-        pub const KEYCTL_CAPS0_PERSISTENT_KEYRINGS: u32 = 0x02;
-        pub const KEYCTL_CAPS0_DIFFIE_HELLMAN: u32 = 0x04;
-        pub const KEYCTL_CAPS0_PUBLIC_KEY: u32 = 0x08;
-        pub const KEYCTL_CAPS0_BIG_KEY: u32 = 0x10;
-        pub const KEYCTL_CAPS0_INVALIDATE: u32 = 0x20;
-        pub const KEYCTL_CAPS0_RESTRICT_KEYRING: u32 = 0x40;
-        pub const KEYCTL_CAPS0_MOVE: u32 = 0x80;
-        pub const KEYCTL_CAPS1_NS_KEYRING_NAME: u32 = 0x01;
-        pub const KEYCTL_CAPS1_NS_KEY_TAG: u32 = 0x02;
-    }
-}
-
-pub const M_MXFAST: ::c_int = 1;
-pub const M_NLBLKS: ::c_int = 2;
-pub const M_GRAIN: ::c_int = 3;
-pub const M_KEEP: ::c_int = 4;
-pub const M_TRIM_THRESHOLD: ::c_int = -1;
-pub const M_TOP_PAD: ::c_int = -2;
-pub const M_MMAP_THRESHOLD: ::c_int = -3;
-pub const M_MMAP_MAX: ::c_int = -4;
-pub const M_CHECK_ACTION: ::c_int = -5;
-pub const M_PERTURB: ::c_int = -6;
-pub const M_ARENA_TEST: ::c_int = -7;
-pub const M_ARENA_MAX: ::c_int = -8;
-
-pub const AT_STATX_SYNC_TYPE: ::c_int = 0x6000;
-pub const AT_STATX_SYNC_AS_STAT: ::c_int = 0x0000;
-pub const AT_STATX_FORCE_SYNC: ::c_int = 0x2000;
-pub const AT_STATX_DONT_SYNC: ::c_int = 0x4000;
-pub const STATX_TYPE: ::c_uint = 0x0001;
-pub const STATX_MODE: ::c_uint = 0x0002;
-pub const STATX_NLINK: ::c_uint = 0x0004;
-pub const STATX_UID: ::c_uint = 0x0008;
-pub const STATX_GID: ::c_uint = 0x0010;
-pub const STATX_ATIME: ::c_uint = 0x0020;
-pub const STATX_MTIME: ::c_uint = 0x0040;
-pub const STATX_CTIME: ::c_uint = 0x0080;
-pub const STATX_INO: ::c_uint = 0x0100;
-pub const STATX_SIZE: ::c_uint = 0x0200;
-pub const STATX_BLOCKS: ::c_uint = 0x0400;
-pub const STATX_BASIC_STATS: ::c_uint = 0x07ff;
-pub const STATX_BTIME: ::c_uint = 0x0800;
-pub const STATX_MNT_ID: ::c_uint = 0x1000;
-pub const STATX_ALL: ::c_uint = 0x0fff;
-pub const STATX__RESERVED: ::c_int = 0x80000000;
-pub const STATX_ATTR_COMPRESSED: ::c_int = 0x0004;
-pub const STATX_ATTR_IMMUTABLE: ::c_int = 0x0010;
-pub const STATX_ATTR_APPEND: ::c_int = 0x0020;
-pub const STATX_ATTR_NODUMP: ::c_int = 0x0040;
-pub const STATX_ATTR_ENCRYPTED: ::c_int = 0x0800;
-pub const STATX_ATTR_AUTOMOUNT: ::c_int = 0x1000;
-pub const STATX_ATTR_MOUNT_ROOT: ::c_int = 0x2000;
-pub const STATX_ATTR_VERITY: ::c_int = 0x00100000;
-pub const STATX_ATTR_DAX: ::c_int = 0x00200000;
-
-pub const SOMAXCONN: ::c_int = 4096;
-
-//sys/timex.h
-pub const ADJ_OFFSET: ::c_uint = 0x0001;
-pub const ADJ_FREQUENCY: ::c_uint = 0x0002;
-pub const ADJ_MAXERROR: ::c_uint = 0x0004;
-pub const ADJ_ESTERROR: ::c_uint = 0x0008;
-pub const ADJ_STATUS: ::c_uint = 0x0010;
-pub const ADJ_TIMECONST: ::c_uint = 0x0020;
-pub const ADJ_TAI: ::c_uint = 0x0080;
-pub const ADJ_SETOFFSET: ::c_uint = 0x0100;
-pub const ADJ_MICRO: ::c_uint = 0x1000;
-pub const ADJ_NANO: ::c_uint = 0x2000;
-pub const ADJ_TICK: ::c_uint = 0x4000;
-pub const ADJ_OFFSET_SINGLESHOT: ::c_uint = 0x8001;
-pub const ADJ_OFFSET_SS_READ: ::c_uint = 0xa001;
-pub const MOD_OFFSET: ::c_uint = ADJ_OFFSET;
-pub const MOD_FREQUENCY: ::c_uint = ADJ_FREQUENCY;
-pub const MOD_MAXERROR: ::c_uint = ADJ_MAXERROR;
-pub const MOD_ESTERROR: ::c_uint = ADJ_ESTERROR;
-pub const MOD_STATUS: ::c_uint = ADJ_STATUS;
-pub const MOD_TIMECONST: ::c_uint = ADJ_TIMECONST;
-pub const MOD_CLKB: ::c_uint = ADJ_TICK;
-pub const MOD_CLKA: ::c_uint = ADJ_OFFSET_SINGLESHOT;
-pub const MOD_TAI: ::c_uint = ADJ_TAI;
-pub const MOD_MICRO: ::c_uint = ADJ_MICRO;
-pub const MOD_NANO: ::c_uint = ADJ_NANO;
-pub const STA_PLL: ::c_int = 0x0001;
-pub const STA_PPSFREQ: ::c_int = 0x0002;
-pub const STA_PPSTIME: ::c_int = 0x0004;
-pub const STA_FLL: ::c_int = 0x0008;
-pub const STA_INS: ::c_int = 0x0010;
-pub const STA_DEL: ::c_int = 0x0020;
-pub const STA_UNSYNC: ::c_int = 0x0040;
-pub const STA_FREQHOLD: ::c_int = 0x0080;
-pub const STA_PPSSIGNAL: ::c_int = 0x0100;
-pub const STA_PPSJITTER: ::c_int = 0x0200;
-pub const STA_PPSWANDER: ::c_int = 0x0400;
-pub const STA_PPSERROR: ::c_int = 0x0800;
-pub const STA_CLOCKERR: ::c_int = 0x1000;
-pub const STA_NANO: ::c_int = 0x2000;
-pub const STA_MODE: ::c_int = 0x4000;
-pub const STA_CLK: ::c_int = 0x8000;
-pub const STA_RONLY: ::c_int = STA_PPSSIGNAL
-    | STA_PPSJITTER
-    | STA_PPSWANDER
-    | STA_PPSERROR
-    | STA_CLOCKERR
-    | STA_NANO
-    | STA_MODE
-    | STA_CLK;
-pub const NTP_API: ::c_int = 4;
-pub const TIME_OK: ::c_int = 0;
-pub const TIME_INS: ::c_int = 1;
-pub const TIME_DEL: ::c_int = 2;
-pub const TIME_OOP: ::c_int = 3;
-pub const TIME_WAIT: ::c_int = 4;
-pub const TIME_ERROR: ::c_int = 5;
-pub const TIME_BAD: ::c_int = TIME_ERROR;
-pub const MAXTC: ::c_long = 6;
-
-cfg_if! {
-    if #[cfg(any(
-        target_arch = "arm",
-        target_arch = "x86",
-        target_arch = "x86_64",
-        target_arch = "s390x",
-        target_arch = "riscv64",
-        target_arch = "riscv32"
-    ))] {
-        pub const PTHREAD_STACK_MIN: ::size_t = 16384;
-    } else if #[cfg(any(
-               target_arch = "sparc",
-               target_arch = "sparc64"
-           ))] {
-        pub const PTHREAD_STACK_MIN: ::size_t = 0x6000;
-    } else {
-        pub const PTHREAD_STACK_MIN: ::size_t = 131072;
-    }
-}
-pub const PTHREAD_MUTEX_ADAPTIVE_NP: ::c_int = 3;
-
-pub const REG_STARTEND: ::c_int = 4;
-
-pub const REG_EEND: ::c_int = 14;
-pub const REG_ESIZE: ::c_int = 15;
-pub const REG_ERPAREN: ::c_int = 16;
-
-extern "C" {
-    pub fn fgetspent_r(
-        fp: *mut ::FILE,
-        spbuf: *mut ::spwd,
-        buf: *mut ::c_char,
-        buflen: ::size_t,
-        spbufp: *mut *mut ::spwd,
-    ) -> ::c_int;
-    pub fn sgetspent_r(
-        s: *const ::c_char,
-        spbuf: *mut ::spwd,
-        buf: *mut ::c_char,
-        buflen: ::size_t,
-        spbufp: *mut *mut ::spwd,
-    ) -> ::c_int;
-    pub fn getspent_r(
-        spbuf: *mut ::spwd,
-        buf: *mut ::c_char,
-        buflen: ::size_t,
-        spbufp: *mut *mut ::spwd,
-    ) -> ::c_int;
-    pub fn qsort_r(
-        base: *mut ::c_void,
-        num: ::size_t,
-        size: ::size_t,
-        compar: ::Option<
-            unsafe extern "C" fn(*const ::c_void, *const ::c_void, *mut ::c_void) -> ::c_int,
-        >,
-        arg: *mut ::c_void,
-    );
-    pub fn sendmmsg(
-        sockfd: ::c_int,
-        msgvec: *mut ::mmsghdr,
-        vlen: ::c_uint,
-        flags: ::c_int,
-    ) -> ::c_int;
-    pub fn recvmmsg(
-        sockfd: ::c_int,
-        msgvec: *mut ::mmsghdr,
-        vlen: ::c_uint,
-        flags: ::c_int,
-        timeout: *mut ::timespec,
-    ) -> ::c_int;
-
-    pub fn getrlimit64(resource: ::__rlimit_resource_t, rlim: *mut ::rlimit64) -> ::c_int;
-    pub fn setrlimit64(resource: ::__rlimit_resource_t, rlim: *const ::rlimit64) -> ::c_int;
-    pub fn getrlimit(resource: ::__rlimit_resource_t, rlim: *mut ::rlimit) -> ::c_int;
-    pub fn setrlimit(resource: ::__rlimit_resource_t, rlim: *const ::rlimit) -> ::c_int;
-    pub fn prlimit(
-        pid: ::pid_t,
-        resource: ::__rlimit_resource_t,
-        new_limit: *const ::rlimit,
-        old_limit: *mut ::rlimit,
-    ) -> ::c_int;
-    pub fn prlimit64(
-        pid: ::pid_t,
-        resource: ::__rlimit_resource_t,
-        new_limit: *const ::rlimit64,
-        old_limit: *mut ::rlimit64,
-    ) -> ::c_int;
-    pub fn utmpname(file: *const ::c_char) -> ::c_int;
-    pub fn utmpxname(file: *const ::c_char) -> ::c_int;
-    pub fn getutxent() -> *mut utmpx;
-    pub fn getutxid(ut: *const utmpx) -> *mut utmpx;
-    pub fn getutxline(ut: *const utmpx) -> *mut utmpx;
-    pub fn pututxline(ut: *const utmpx) -> *mut utmpx;
-    pub fn setutxent();
-    pub fn endutxent();
-    pub fn getpt() -> ::c_int;
-    pub fn mallopt(param: ::c_int, value: ::c_int) -> ::c_int;
-    pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::timezone) -> ::c_int;
-    pub fn statx(
-        dirfd: ::c_int,
-        pathname: *const c_char,
-        flags: ::c_int,
-        mask: ::c_uint,
-        statxbuf: *mut statx,
-    ) -> ::c_int;
-    pub fn getentropy(buf: *mut ::c_void, buflen: ::size_t) -> ::c_int;
-    pub fn getrandom(buf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t;
-    pub fn getauxval(type_: ::c_ulong) -> ::c_ulong;
-
-    pub fn adjtimex(buf: *mut timex) -> ::c_int;
-    pub fn ntp_adjtime(buf: *mut timex) -> ::c_int;
-    #[link_name = "ntp_gettimex"]
-    pub fn ntp_gettime(buf: *mut ntptimeval) -> ::c_int;
-    pub fn clock_adjtime(clk_id: ::clockid_t, buf: *mut ::timex) -> ::c_int;
-
-    pub fn copy_file_range(
-        fd_in: ::c_int,
-        off_in: *mut ::off64_t,
-        fd_out: ::c_int,
-        off_out: *mut ::off64_t,
-        len: ::size_t,
-        flags: ::c_uint,
-    ) -> ::ssize_t;
-    pub fn fanotify_mark(
-        fd: ::c_int,
-        flags: ::c_uint,
-        mask: u64,
-        dirfd: ::c_int,
-        path: *const ::c_char,
-    ) -> ::c_int;
-    pub fn preadv2(
-        fd: ::c_int,
-        iov: *const ::iovec,
-        iovcnt: ::c_int,
-        offset: ::off_t,
-        flags: ::c_int,
-    ) -> ::ssize_t;
-    pub fn pwritev2(
-        fd: ::c_int,
-        iov: *const ::iovec,
-        iovcnt: ::c_int,
-        offset: ::off_t,
-        flags: ::c_int,
-    ) -> ::ssize_t;
-    pub fn preadv64v2(
-        fd: ::c_int,
-        iov: *const ::iovec,
-        iovcnt: ::c_int,
-        offset: ::off64_t,
-        flags: ::c_int,
-    ) -> ::ssize_t;
-    pub fn pwritev64v2(
-        fd: ::c_int,
-        iov: *const ::iovec,
-        iovcnt: ::c_int,
-        offset: ::off64_t,
-        flags: ::c_int,
-    ) -> ::ssize_t;
-    pub fn renameat2(
-        olddirfd: ::c_int,
-        oldpath: *const ::c_char,
-        newdirfd: ::c_int,
-        newpath: *const ::c_char,
-        flags: ::c_uint,
-    ) -> ::c_int;
-
-    // Added in `glibc` 2.25
-    pub fn explicit_bzero(s: *mut ::c_void, len: ::size_t);
-    // Added in `glibc` 2.29
-    pub fn reallocarray(ptr: *mut ::c_void, nmemb: ::size_t, size: ::size_t) -> *mut ::c_void;
-
-    pub fn ctermid(s: *mut ::c_char) -> *mut ::c_char;
-}
-
-extern "C" {
-    pub fn ioctl(fd: ::c_int, request: ::c_ulong, ...) -> ::c_int;
-    pub fn backtrace(buf: *mut *mut ::c_void, sz: ::c_int) -> ::c_int;
-    pub fn glob64(
-        pattern: *const ::c_char,
-        flags: ::c_int,
-        errfunc: ::Option<extern "C" fn(epath: *const ::c_char, errno: ::c_int) -> ::c_int>,
-        pglob: *mut glob64_t,
-    ) -> ::c_int;
-    pub fn globfree64(pglob: *mut glob64_t);
-    pub fn ptrace(request: ::c_uint, ...) -> ::c_long;
-    pub fn pthread_attr_getaffinity_np(
-        attr: *const ::pthread_attr_t,
-        cpusetsize: ::size_t,
-        cpuset: *mut ::cpu_set_t,
-    ) -> ::c_int;
-    pub fn pthread_attr_setaffinity_np(
-        attr: *mut ::pthread_attr_t,
-        cpusetsize: ::size_t,
-        cpuset: *const ::cpu_set_t,
-    ) -> ::c_int;
-    pub fn getpriority(which: ::__priority_which_t, who: ::id_t) -> ::c_int;
-    pub fn setpriority(which: ::__priority_which_t, who: ::id_t, prio: ::c_int) -> ::c_int;
-    pub fn pthread_rwlockattr_getkind_np(
-        attr: *const ::pthread_rwlockattr_t,
-        val: *mut ::c_int,
-    ) -> ::c_int;
-    pub fn pthread_rwlockattr_setkind_np(
-        attr: *mut ::pthread_rwlockattr_t,
-        val: ::c_int,
-    ) -> ::c_int;
-    pub fn pthread_sigqueue(thread: ::pthread_t, sig: ::c_int, value: ::sigval) -> ::c_int;
-    pub fn mallinfo() -> ::mallinfo;
-    pub fn mallinfo2() -> ::mallinfo2;
-    pub fn malloc_info(options: ::c_int, stream: *mut ::FILE) -> ::c_int;
-    pub fn malloc_usable_size(ptr: *mut ::c_void) -> ::size_t;
-    pub fn getpwent_r(
-        pwd: *mut ::passwd,
-        buf: *mut ::c_char,
-        buflen: ::size_t,
-        result: *mut *mut ::passwd,
-    ) -> ::c_int;
-    pub fn getgrent_r(
-        grp: *mut ::group,
-        buf: *mut ::c_char,
-        buflen: ::size_t,
-        result: *mut *mut ::group,
-    ) -> ::c_int;
-    pub fn fgetpwent_r(
-        stream: *mut ::FILE,
-        pwd: *mut ::passwd,
-        buf: *mut ::c_char,
-        buflen: ::size_t,
-        result: *mut *mut ::passwd,
-    ) -> ::c_int;
-    pub fn fgetgrent_r(
-        stream: *mut ::FILE,
-        grp: *mut ::group,
-        buf: *mut ::c_char,
-        buflen: ::size_t,
-        result: *mut *mut ::group,
-    ) -> ::c_int;
-
-    pub fn sethostid(hostid: ::c_long) -> ::c_int;
-
-    pub fn memfd_create(name: *const ::c_char, flags: ::c_uint) -> ::c_int;
-    pub fn mlock2(addr: *const ::c_void, len: ::size_t, flags: ::c_uint) -> ::c_int;
-
-    pub fn euidaccess(pathname: *const ::c_char, mode: ::c_int) -> ::c_int;
-    pub fn eaccess(pathname: *const ::c_char, mode: ::c_int) -> ::c_int;
-
-    pub fn asctime_r(tm: *const ::tm, buf: *mut ::c_char) -> *mut ::c_char;
-    pub fn ctime_r(timep: *const time_t, buf: *mut ::c_char) -> *mut ::c_char;
-
-    pub fn strftime(
-        s: *mut ::c_char,
-        max: ::size_t,
-        format: *const ::c_char,
-        tm: *const ::tm,
-    ) -> ::size_t;
-    pub fn strptime(s: *const ::c_char, format: *const ::c_char, tm: *mut ::tm) -> *mut ::c_char;
-
-    pub fn dirname(path: *mut ::c_char) -> *mut ::c_char;
-    /// POSIX version of `basename(3)`, defined in `libgen.h`.
-    #[link_name = "__xpg_basename"]
-    pub fn posix_basename(path: *mut ::c_char) -> *mut ::c_char;
-    /// GNU version of `basename(3)`, defined in `string.h`.
-    #[link_name = "basename"]
-    pub fn gnu_basename(path: *const ::c_char) -> *mut ::c_char;
-}
-
-extern "C" {
-    pub fn dlmopen(lmid: Lmid_t, filename: *const ::c_char, flag: ::c_int) -> *mut ::c_void;
-    pub fn dlinfo(handle: *mut ::c_void, request: ::c_int, info: *mut ::c_void) -> ::c_int;
-    pub fn dladdr1(
-        addr: *const ::c_void,
-        info: *mut ::Dl_info,
-        extra_info: *mut *mut ::c_void,
-        flags: ::c_int,
-    ) -> ::c_int;
-    pub fn malloc_trim(__pad: ::size_t) -> ::c_int;
-}
-
-extern "C" {
-    pub fn gnu_get_libc_release() -> *const ::c_char;
-    pub fn gnu_get_libc_version() -> *const ::c_char;
-}
-
-cfg_if! {
-    if #[cfg(any(target_arch = "x86",
-                 target_arch = "arm",
-                 target_arch = "m68k",
-                 target_arch = "mips",
-                 target_arch = "powerpc",
-                 target_arch = "sparc",
-                 target_arch = "riscv32"))] {
-        mod b32;
-        pub use self::b32::*;
-    } else if #[cfg(any(target_arch = "x86_64",
-                        target_arch = "aarch64",
-                        target_arch = "powerpc64",
-                        target_arch = "mips64",
-                        target_arch = "s390x",
-                        target_arch = "sparc64",
-                        target_arch = "riscv64",
-                        target_arch = "loongarch64"))] {
-        mod b64;
-        pub use self::b64::*;
-    } else {
-        // Unknown target_arch
-    }
-}
-
-cfg_if! {
-    if #[cfg(libc_align)] {
-        mod align;
-        pub use self::align::*;
-    } else {
-        mod no_align;
-        pub use self::no_align::*;
-    }
-}
-
-
\ No newline at end of file diff --git a/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/linux_like/linux/mod.rs.html b/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/linux_like/linux/mod.rs.html deleted file mode 100644 index 3d0cf08..0000000 --- a/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/linux_like/linux/mod.rs.html +++ /dev/null @@ -1,8986 +0,0 @@ -mod.rs - source
1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
-21
-22
-23
-24
-25
-26
-27
-28
-29
-30
-31
-32
-33
-34
-35
-36
-37
-38
-39
-40
-41
-42
-43
-44
-45
-46
-47
-48
-49
-50
-51
-52
-53
-54
-55
-56
-57
-58
-59
-60
-61
-62
-63
-64
-65
-66
-67
-68
-69
-70
-71
-72
-73
-74
-75
-76
-77
-78
-79
-80
-81
-82
-83
-84
-85
-86
-87
-88
-89
-90
-91
-92
-93
-94
-95
-96
-97
-98
-99
-100
-101
-102
-103
-104
-105
-106
-107
-108
-109
-110
-111
-112
-113
-114
-115
-116
-117
-118
-119
-120
-121
-122
-123
-124
-125
-126
-127
-128
-129
-130
-131
-132
-133
-134
-135
-136
-137
-138
-139
-140
-141
-142
-143
-144
-145
-146
-147
-148
-149
-150
-151
-152
-153
-154
-155
-156
-157
-158
-159
-160
-161
-162
-163
-164
-165
-166
-167
-168
-169
-170
-171
-172
-173
-174
-175
-176
-177
-178
-179
-180
-181
-182
-183
-184
-185
-186
-187
-188
-189
-190
-191
-192
-193
-194
-195
-196
-197
-198
-199
-200
-201
-202
-203
-204
-205
-206
-207
-208
-209
-210
-211
-212
-213
-214
-215
-216
-217
-218
-219
-220
-221
-222
-223
-224
-225
-226
-227
-228
-229
-230
-231
-232
-233
-234
-235
-236
-237
-238
-239
-240
-241
-242
-243
-244
-245
-246
-247
-248
-249
-250
-251
-252
-253
-254
-255
-256
-257
-258
-259
-260
-261
-262
-263
-264
-265
-266
-267
-268
-269
-270
-271
-272
-273
-274
-275
-276
-277
-278
-279
-280
-281
-282
-283
-284
-285
-286
-287
-288
-289
-290
-291
-292
-293
-294
-295
-296
-297
-298
-299
-300
-301
-302
-303
-304
-305
-306
-307
-308
-309
-310
-311
-312
-313
-314
-315
-316
-317
-318
-319
-320
-321
-322
-323
-324
-325
-326
-327
-328
-329
-330
-331
-332
-333
-334
-335
-336
-337
-338
-339
-340
-341
-342
-343
-344
-345
-346
-347
-348
-349
-350
-351
-352
-353
-354
-355
-356
-357
-358
-359
-360
-361
-362
-363
-364
-365
-366
-367
-368
-369
-370
-371
-372
-373
-374
-375
-376
-377
-378
-379
-380
-381
-382
-383
-384
-385
-386
-387
-388
-389
-390
-391
-392
-393
-394
-395
-396
-397
-398
-399
-400
-401
-402
-403
-404
-405
-406
-407
-408
-409
-410
-411
-412
-413
-414
-415
-416
-417
-418
-419
-420
-421
-422
-423
-424
-425
-426
-427
-428
-429
-430
-431
-432
-433
-434
-435
-436
-437
-438
-439
-440
-441
-442
-443
-444
-445
-446
-447
-448
-449
-450
-451
-452
-453
-454
-455
-456
-457
-458
-459
-460
-461
-462
-463
-464
-465
-466
-467
-468
-469
-470
-471
-472
-473
-474
-475
-476
-477
-478
-479
-480
-481
-482
-483
-484
-485
-486
-487
-488
-489
-490
-491
-492
-493
-494
-495
-496
-497
-498
-499
-500
-501
-502
-503
-504
-505
-506
-507
-508
-509
-510
-511
-512
-513
-514
-515
-516
-517
-518
-519
-520
-521
-522
-523
-524
-525
-526
-527
-528
-529
-530
-531
-532
-533
-534
-535
-536
-537
-538
-539
-540
-541
-542
-543
-544
-545
-546
-547
-548
-549
-550
-551
-552
-553
-554
-555
-556
-557
-558
-559
-560
-561
-562
-563
-564
-565
-566
-567
-568
-569
-570
-571
-572
-573
-574
-575
-576
-577
-578
-579
-580
-581
-582
-583
-584
-585
-586
-587
-588
-589
-590
-591
-592
-593
-594
-595
-596
-597
-598
-599
-600
-601
-602
-603
-604
-605
-606
-607
-608
-609
-610
-611
-612
-613
-614
-615
-616
-617
-618
-619
-620
-621
-622
-623
-624
-625
-626
-627
-628
-629
-630
-631
-632
-633
-634
-635
-636
-637
-638
-639
-640
-641
-642
-643
-644
-645
-646
-647
-648
-649
-650
-651
-652
-653
-654
-655
-656
-657
-658
-659
-660
-661
-662
-663
-664
-665
-666
-667
-668
-669
-670
-671
-672
-673
-674
-675
-676
-677
-678
-679
-680
-681
-682
-683
-684
-685
-686
-687
-688
-689
-690
-691
-692
-693
-694
-695
-696
-697
-698
-699
-700
-701
-702
-703
-704
-705
-706
-707
-708
-709
-710
-711
-712
-713
-714
-715
-716
-717
-718
-719
-720
-721
-722
-723
-724
-725
-726
-727
-728
-729
-730
-731
-732
-733
-734
-735
-736
-737
-738
-739
-740
-741
-742
-743
-744
-745
-746
-747
-748
-749
-750
-751
-752
-753
-754
-755
-756
-757
-758
-759
-760
-761
-762
-763
-764
-765
-766
-767
-768
-769
-770
-771
-772
-773
-774
-775
-776
-777
-778
-779
-780
-781
-782
-783
-784
-785
-786
-787
-788
-789
-790
-791
-792
-793
-794
-795
-796
-797
-798
-799
-800
-801
-802
-803
-804
-805
-806
-807
-808
-809
-810
-811
-812
-813
-814
-815
-816
-817
-818
-819
-820
-821
-822
-823
-824
-825
-826
-827
-828
-829
-830
-831
-832
-833
-834
-835
-836
-837
-838
-839
-840
-841
-842
-843
-844
-845
-846
-847
-848
-849
-850
-851
-852
-853
-854
-855
-856
-857
-858
-859
-860
-861
-862
-863
-864
-865
-866
-867
-868
-869
-870
-871
-872
-873
-874
-875
-876
-877
-878
-879
-880
-881
-882
-883
-884
-885
-886
-887
-888
-889
-890
-891
-892
-893
-894
-895
-896
-897
-898
-899
-900
-901
-902
-903
-904
-905
-906
-907
-908
-909
-910
-911
-912
-913
-914
-915
-916
-917
-918
-919
-920
-921
-922
-923
-924
-925
-926
-927
-928
-929
-930
-931
-932
-933
-934
-935
-936
-937
-938
-939
-940
-941
-942
-943
-944
-945
-946
-947
-948
-949
-950
-951
-952
-953
-954
-955
-956
-957
-958
-959
-960
-961
-962
-963
-964
-965
-966
-967
-968
-969
-970
-971
-972
-973
-974
-975
-976
-977
-978
-979
-980
-981
-982
-983
-984
-985
-986
-987
-988
-989
-990
-991
-992
-993
-994
-995
-996
-997
-998
-999
-1000
-1001
-1002
-1003
-1004
-1005
-1006
-1007
-1008
-1009
-1010
-1011
-1012
-1013
-1014
-1015
-1016
-1017
-1018
-1019
-1020
-1021
-1022
-1023
-1024
-1025
-1026
-1027
-1028
-1029
-1030
-1031
-1032
-1033
-1034
-1035
-1036
-1037
-1038
-1039
-1040
-1041
-1042
-1043
-1044
-1045
-1046
-1047
-1048
-1049
-1050
-1051
-1052
-1053
-1054
-1055
-1056
-1057
-1058
-1059
-1060
-1061
-1062
-1063
-1064
-1065
-1066
-1067
-1068
-1069
-1070
-1071
-1072
-1073
-1074
-1075
-1076
-1077
-1078
-1079
-1080
-1081
-1082
-1083
-1084
-1085
-1086
-1087
-1088
-1089
-1090
-1091
-1092
-1093
-1094
-1095
-1096
-1097
-1098
-1099
-1100
-1101
-1102
-1103
-1104
-1105
-1106
-1107
-1108
-1109
-1110
-1111
-1112
-1113
-1114
-1115
-1116
-1117
-1118
-1119
-1120
-1121
-1122
-1123
-1124
-1125
-1126
-1127
-1128
-1129
-1130
-1131
-1132
-1133
-1134
-1135
-1136
-1137
-1138
-1139
-1140
-1141
-1142
-1143
-1144
-1145
-1146
-1147
-1148
-1149
-1150
-1151
-1152
-1153
-1154
-1155
-1156
-1157
-1158
-1159
-1160
-1161
-1162
-1163
-1164
-1165
-1166
-1167
-1168
-1169
-1170
-1171
-1172
-1173
-1174
-1175
-1176
-1177
-1178
-1179
-1180
-1181
-1182
-1183
-1184
-1185
-1186
-1187
-1188
-1189
-1190
-1191
-1192
-1193
-1194
-1195
-1196
-1197
-1198
-1199
-1200
-1201
-1202
-1203
-1204
-1205
-1206
-1207
-1208
-1209
-1210
-1211
-1212
-1213
-1214
-1215
-1216
-1217
-1218
-1219
-1220
-1221
-1222
-1223
-1224
-1225
-1226
-1227
-1228
-1229
-1230
-1231
-1232
-1233
-1234
-1235
-1236
-1237
-1238
-1239
-1240
-1241
-1242
-1243
-1244
-1245
-1246
-1247
-1248
-1249
-1250
-1251
-1252
-1253
-1254
-1255
-1256
-1257
-1258
-1259
-1260
-1261
-1262
-1263
-1264
-1265
-1266
-1267
-1268
-1269
-1270
-1271
-1272
-1273
-1274
-1275
-1276
-1277
-1278
-1279
-1280
-1281
-1282
-1283
-1284
-1285
-1286
-1287
-1288
-1289
-1290
-1291
-1292
-1293
-1294
-1295
-1296
-1297
-1298
-1299
-1300
-1301
-1302
-1303
-1304
-1305
-1306
-1307
-1308
-1309
-1310
-1311
-1312
-1313
-1314
-1315
-1316
-1317
-1318
-1319
-1320
-1321
-1322
-1323
-1324
-1325
-1326
-1327
-1328
-1329
-1330
-1331
-1332
-1333
-1334
-1335
-1336
-1337
-1338
-1339
-1340
-1341
-1342
-1343
-1344
-1345
-1346
-1347
-1348
-1349
-1350
-1351
-1352
-1353
-1354
-1355
-1356
-1357
-1358
-1359
-1360
-1361
-1362
-1363
-1364
-1365
-1366
-1367
-1368
-1369
-1370
-1371
-1372
-1373
-1374
-1375
-1376
-1377
-1378
-1379
-1380
-1381
-1382
-1383
-1384
-1385
-1386
-1387
-1388
-1389
-1390
-1391
-1392
-1393
-1394
-1395
-1396
-1397
-1398
-1399
-1400
-1401
-1402
-1403
-1404
-1405
-1406
-1407
-1408
-1409
-1410
-1411
-1412
-1413
-1414
-1415
-1416
-1417
-1418
-1419
-1420
-1421
-1422
-1423
-1424
-1425
-1426
-1427
-1428
-1429
-1430
-1431
-1432
-1433
-1434
-1435
-1436
-1437
-1438
-1439
-1440
-1441
-1442
-1443
-1444
-1445
-1446
-1447
-1448
-1449
-1450
-1451
-1452
-1453
-1454
-1455
-1456
-1457
-1458
-1459
-1460
-1461
-1462
-1463
-1464
-1465
-1466
-1467
-1468
-1469
-1470
-1471
-1472
-1473
-1474
-1475
-1476
-1477
-1478
-1479
-1480
-1481
-1482
-1483
-1484
-1485
-1486
-1487
-1488
-1489
-1490
-1491
-1492
-1493
-1494
-1495
-1496
-1497
-1498
-1499
-1500
-1501
-1502
-1503
-1504
-1505
-1506
-1507
-1508
-1509
-1510
-1511
-1512
-1513
-1514
-1515
-1516
-1517
-1518
-1519
-1520
-1521
-1522
-1523
-1524
-1525
-1526
-1527
-1528
-1529
-1530
-1531
-1532
-1533
-1534
-1535
-1536
-1537
-1538
-1539
-1540
-1541
-1542
-1543
-1544
-1545
-1546
-1547
-1548
-1549
-1550
-1551
-1552
-1553
-1554
-1555
-1556
-1557
-1558
-1559
-1560
-1561
-1562
-1563
-1564
-1565
-1566
-1567
-1568
-1569
-1570
-1571
-1572
-1573
-1574
-1575
-1576
-1577
-1578
-1579
-1580
-1581
-1582
-1583
-1584
-1585
-1586
-1587
-1588
-1589
-1590
-1591
-1592
-1593
-1594
-1595
-1596
-1597
-1598
-1599
-1600
-1601
-1602
-1603
-1604
-1605
-1606
-1607
-1608
-1609
-1610
-1611
-1612
-1613
-1614
-1615
-1616
-1617
-1618
-1619
-1620
-1621
-1622
-1623
-1624
-1625
-1626
-1627
-1628
-1629
-1630
-1631
-1632
-1633
-1634
-1635
-1636
-1637
-1638
-1639
-1640
-1641
-1642
-1643
-1644
-1645
-1646
-1647
-1648
-1649
-1650
-1651
-1652
-1653
-1654
-1655
-1656
-1657
-1658
-1659
-1660
-1661
-1662
-1663
-1664
-1665
-1666
-1667
-1668
-1669
-1670
-1671
-1672
-1673
-1674
-1675
-1676
-1677
-1678
-1679
-1680
-1681
-1682
-1683
-1684
-1685
-1686
-1687
-1688
-1689
-1690
-1691
-1692
-1693
-1694
-1695
-1696
-1697
-1698
-1699
-1700
-1701
-1702
-1703
-1704
-1705
-1706
-1707
-1708
-1709
-1710
-1711
-1712
-1713
-1714
-1715
-1716
-1717
-1718
-1719
-1720
-1721
-1722
-1723
-1724
-1725
-1726
-1727
-1728
-1729
-1730
-1731
-1732
-1733
-1734
-1735
-1736
-1737
-1738
-1739
-1740
-1741
-1742
-1743
-1744
-1745
-1746
-1747
-1748
-1749
-1750
-1751
-1752
-1753
-1754
-1755
-1756
-1757
-1758
-1759
-1760
-1761
-1762
-1763
-1764
-1765
-1766
-1767
-1768
-1769
-1770
-1771
-1772
-1773
-1774
-1775
-1776
-1777
-1778
-1779
-1780
-1781
-1782
-1783
-1784
-1785
-1786
-1787
-1788
-1789
-1790
-1791
-1792
-1793
-1794
-1795
-1796
-1797
-1798
-1799
-1800
-1801
-1802
-1803
-1804
-1805
-1806
-1807
-1808
-1809
-1810
-1811
-1812
-1813
-1814
-1815
-1816
-1817
-1818
-1819
-1820
-1821
-1822
-1823
-1824
-1825
-1826
-1827
-1828
-1829
-1830
-1831
-1832
-1833
-1834
-1835
-1836
-1837
-1838
-1839
-1840
-1841
-1842
-1843
-1844
-1845
-1846
-1847
-1848
-1849
-1850
-1851
-1852
-1853
-1854
-1855
-1856
-1857
-1858
-1859
-1860
-1861
-1862
-1863
-1864
-1865
-1866
-1867
-1868
-1869
-1870
-1871
-1872
-1873
-1874
-1875
-1876
-1877
-1878
-1879
-1880
-1881
-1882
-1883
-1884
-1885
-1886
-1887
-1888
-1889
-1890
-1891
-1892
-1893
-1894
-1895
-1896
-1897
-1898
-1899
-1900
-1901
-1902
-1903
-1904
-1905
-1906
-1907
-1908
-1909
-1910
-1911
-1912
-1913
-1914
-1915
-1916
-1917
-1918
-1919
-1920
-1921
-1922
-1923
-1924
-1925
-1926
-1927
-1928
-1929
-1930
-1931
-1932
-1933
-1934
-1935
-1936
-1937
-1938
-1939
-1940
-1941
-1942
-1943
-1944
-1945
-1946
-1947
-1948
-1949
-1950
-1951
-1952
-1953
-1954
-1955
-1956
-1957
-1958
-1959
-1960
-1961
-1962
-1963
-1964
-1965
-1966
-1967
-1968
-1969
-1970
-1971
-1972
-1973
-1974
-1975
-1976
-1977
-1978
-1979
-1980
-1981
-1982
-1983
-1984
-1985
-1986
-1987
-1988
-1989
-1990
-1991
-1992
-1993
-1994
-1995
-1996
-1997
-1998
-1999
-2000
-2001
-2002
-2003
-2004
-2005
-2006
-2007
-2008
-2009
-2010
-2011
-2012
-2013
-2014
-2015
-2016
-2017
-2018
-2019
-2020
-2021
-2022
-2023
-2024
-2025
-2026
-2027
-2028
-2029
-2030
-2031
-2032
-2033
-2034
-2035
-2036
-2037
-2038
-2039
-2040
-2041
-2042
-2043
-2044
-2045
-2046
-2047
-2048
-2049
-2050
-2051
-2052
-2053
-2054
-2055
-2056
-2057
-2058
-2059
-2060
-2061
-2062
-2063
-2064
-2065
-2066
-2067
-2068
-2069
-2070
-2071
-2072
-2073
-2074
-2075
-2076
-2077
-2078
-2079
-2080
-2081
-2082
-2083
-2084
-2085
-2086
-2087
-2088
-2089
-2090
-2091
-2092
-2093
-2094
-2095
-2096
-2097
-2098
-2099
-2100
-2101
-2102
-2103
-2104
-2105
-2106
-2107
-2108
-2109
-2110
-2111
-2112
-2113
-2114
-2115
-2116
-2117
-2118
-2119
-2120
-2121
-2122
-2123
-2124
-2125
-2126
-2127
-2128
-2129
-2130
-2131
-2132
-2133
-2134
-2135
-2136
-2137
-2138
-2139
-2140
-2141
-2142
-2143
-2144
-2145
-2146
-2147
-2148
-2149
-2150
-2151
-2152
-2153
-2154
-2155
-2156
-2157
-2158
-2159
-2160
-2161
-2162
-2163
-2164
-2165
-2166
-2167
-2168
-2169
-2170
-2171
-2172
-2173
-2174
-2175
-2176
-2177
-2178
-2179
-2180
-2181
-2182
-2183
-2184
-2185
-2186
-2187
-2188
-2189
-2190
-2191
-2192
-2193
-2194
-2195
-2196
-2197
-2198
-2199
-2200
-2201
-2202
-2203
-2204
-2205
-2206
-2207
-2208
-2209
-2210
-2211
-2212
-2213
-2214
-2215
-2216
-2217
-2218
-2219
-2220
-2221
-2222
-2223
-2224
-2225
-2226
-2227
-2228
-2229
-2230
-2231
-2232
-2233
-2234
-2235
-2236
-2237
-2238
-2239
-2240
-2241
-2242
-2243
-2244
-2245
-2246
-2247
-2248
-2249
-2250
-2251
-2252
-2253
-2254
-2255
-2256
-2257
-2258
-2259
-2260
-2261
-2262
-2263
-2264
-2265
-2266
-2267
-2268
-2269
-2270
-2271
-2272
-2273
-2274
-2275
-2276
-2277
-2278
-2279
-2280
-2281
-2282
-2283
-2284
-2285
-2286
-2287
-2288
-2289
-2290
-2291
-2292
-2293
-2294
-2295
-2296
-2297
-2298
-2299
-2300
-2301
-2302
-2303
-2304
-2305
-2306
-2307
-2308
-2309
-2310
-2311
-2312
-2313
-2314
-2315
-2316
-2317
-2318
-2319
-2320
-2321
-2322
-2323
-2324
-2325
-2326
-2327
-2328
-2329
-2330
-2331
-2332
-2333
-2334
-2335
-2336
-2337
-2338
-2339
-2340
-2341
-2342
-2343
-2344
-2345
-2346
-2347
-2348
-2349
-2350
-2351
-2352
-2353
-2354
-2355
-2356
-2357
-2358
-2359
-2360
-2361
-2362
-2363
-2364
-2365
-2366
-2367
-2368
-2369
-2370
-2371
-2372
-2373
-2374
-2375
-2376
-2377
-2378
-2379
-2380
-2381
-2382
-2383
-2384
-2385
-2386
-2387
-2388
-2389
-2390
-2391
-2392
-2393
-2394
-2395
-2396
-2397
-2398
-2399
-2400
-2401
-2402
-2403
-2404
-2405
-2406
-2407
-2408
-2409
-2410
-2411
-2412
-2413
-2414
-2415
-2416
-2417
-2418
-2419
-2420
-2421
-2422
-2423
-2424
-2425
-2426
-2427
-2428
-2429
-2430
-2431
-2432
-2433
-2434
-2435
-2436
-2437
-2438
-2439
-2440
-2441
-2442
-2443
-2444
-2445
-2446
-2447
-2448
-2449
-2450
-2451
-2452
-2453
-2454
-2455
-2456
-2457
-2458
-2459
-2460
-2461
-2462
-2463
-2464
-2465
-2466
-2467
-2468
-2469
-2470
-2471
-2472
-2473
-2474
-2475
-2476
-2477
-2478
-2479
-2480
-2481
-2482
-2483
-2484
-2485
-2486
-2487
-2488
-2489
-2490
-2491
-2492
-2493
-2494
-2495
-2496
-2497
-2498
-2499
-2500
-2501
-2502
-2503
-2504
-2505
-2506
-2507
-2508
-2509
-2510
-2511
-2512
-2513
-2514
-2515
-2516
-2517
-2518
-2519
-2520
-2521
-2522
-2523
-2524
-2525
-2526
-2527
-2528
-2529
-2530
-2531
-2532
-2533
-2534
-2535
-2536
-2537
-2538
-2539
-2540
-2541
-2542
-2543
-2544
-2545
-2546
-2547
-2548
-2549
-2550
-2551
-2552
-2553
-2554
-2555
-2556
-2557
-2558
-2559
-2560
-2561
-2562
-2563
-2564
-2565
-2566
-2567
-2568
-2569
-2570
-2571
-2572
-2573
-2574
-2575
-2576
-2577
-2578
-2579
-2580
-2581
-2582
-2583
-2584
-2585
-2586
-2587
-2588
-2589
-2590
-2591
-2592
-2593
-2594
-2595
-2596
-2597
-2598
-2599
-2600
-2601
-2602
-2603
-2604
-2605
-2606
-2607
-2608
-2609
-2610
-2611
-2612
-2613
-2614
-2615
-2616
-2617
-2618
-2619
-2620
-2621
-2622
-2623
-2624
-2625
-2626
-2627
-2628
-2629
-2630
-2631
-2632
-2633
-2634
-2635
-2636
-2637
-2638
-2639
-2640
-2641
-2642
-2643
-2644
-2645
-2646
-2647
-2648
-2649
-2650
-2651
-2652
-2653
-2654
-2655
-2656
-2657
-2658
-2659
-2660
-2661
-2662
-2663
-2664
-2665
-2666
-2667
-2668
-2669
-2670
-2671
-2672
-2673
-2674
-2675
-2676
-2677
-2678
-2679
-2680
-2681
-2682
-2683
-2684
-2685
-2686
-2687
-2688
-2689
-2690
-2691
-2692
-2693
-2694
-2695
-2696
-2697
-2698
-2699
-2700
-2701
-2702
-2703
-2704
-2705
-2706
-2707
-2708
-2709
-2710
-2711
-2712
-2713
-2714
-2715
-2716
-2717
-2718
-2719
-2720
-2721
-2722
-2723
-2724
-2725
-2726
-2727
-2728
-2729
-2730
-2731
-2732
-2733
-2734
-2735
-2736
-2737
-2738
-2739
-2740
-2741
-2742
-2743
-2744
-2745
-2746
-2747
-2748
-2749
-2750
-2751
-2752
-2753
-2754
-2755
-2756
-2757
-2758
-2759
-2760
-2761
-2762
-2763
-2764
-2765
-2766
-2767
-2768
-2769
-2770
-2771
-2772
-2773
-2774
-2775
-2776
-2777
-2778
-2779
-2780
-2781
-2782
-2783
-2784
-2785
-2786
-2787
-2788
-2789
-2790
-2791
-2792
-2793
-2794
-2795
-2796
-2797
-2798
-2799
-2800
-2801
-2802
-2803
-2804
-2805
-2806
-2807
-2808
-2809
-2810
-2811
-2812
-2813
-2814
-2815
-2816
-2817
-2818
-2819
-2820
-2821
-2822
-2823
-2824
-2825
-2826
-2827
-2828
-2829
-2830
-2831
-2832
-2833
-2834
-2835
-2836
-2837
-2838
-2839
-2840
-2841
-2842
-2843
-2844
-2845
-2846
-2847
-2848
-2849
-2850
-2851
-2852
-2853
-2854
-2855
-2856
-2857
-2858
-2859
-2860
-2861
-2862
-2863
-2864
-2865
-2866
-2867
-2868
-2869
-2870
-2871
-2872
-2873
-2874
-2875
-2876
-2877
-2878
-2879
-2880
-2881
-2882
-2883
-2884
-2885
-2886
-2887
-2888
-2889
-2890
-2891
-2892
-2893
-2894
-2895
-2896
-2897
-2898
-2899
-2900
-2901
-2902
-2903
-2904
-2905
-2906
-2907
-2908
-2909
-2910
-2911
-2912
-2913
-2914
-2915
-2916
-2917
-2918
-2919
-2920
-2921
-2922
-2923
-2924
-2925
-2926
-2927
-2928
-2929
-2930
-2931
-2932
-2933
-2934
-2935
-2936
-2937
-2938
-2939
-2940
-2941
-2942
-2943
-2944
-2945
-2946
-2947
-2948
-2949
-2950
-2951
-2952
-2953
-2954
-2955
-2956
-2957
-2958
-2959
-2960
-2961
-2962
-2963
-2964
-2965
-2966
-2967
-2968
-2969
-2970
-2971
-2972
-2973
-2974
-2975
-2976
-2977
-2978
-2979
-2980
-2981
-2982
-2983
-2984
-2985
-2986
-2987
-2988
-2989
-2990
-2991
-2992
-2993
-2994
-2995
-2996
-2997
-2998
-2999
-3000
-3001
-3002
-3003
-3004
-3005
-3006
-3007
-3008
-3009
-3010
-3011
-3012
-3013
-3014
-3015
-3016
-3017
-3018
-3019
-3020
-3021
-3022
-3023
-3024
-3025
-3026
-3027
-3028
-3029
-3030
-3031
-3032
-3033
-3034
-3035
-3036
-3037
-3038
-3039
-3040
-3041
-3042
-3043
-3044
-3045
-3046
-3047
-3048
-3049
-3050
-3051
-3052
-3053
-3054
-3055
-3056
-3057
-3058
-3059
-3060
-3061
-3062
-3063
-3064
-3065
-3066
-3067
-3068
-3069
-3070
-3071
-3072
-3073
-3074
-3075
-3076
-3077
-3078
-3079
-3080
-3081
-3082
-3083
-3084
-3085
-3086
-3087
-3088
-3089
-3090
-3091
-3092
-3093
-3094
-3095
-3096
-3097
-3098
-3099
-3100
-3101
-3102
-3103
-3104
-3105
-3106
-3107
-3108
-3109
-3110
-3111
-3112
-3113
-3114
-3115
-3116
-3117
-3118
-3119
-3120
-3121
-3122
-3123
-3124
-3125
-3126
-3127
-3128
-3129
-3130
-3131
-3132
-3133
-3134
-3135
-3136
-3137
-3138
-3139
-3140
-3141
-3142
-3143
-3144
-3145
-3146
-3147
-3148
-3149
-3150
-3151
-3152
-3153
-3154
-3155
-3156
-3157
-3158
-3159
-3160
-3161
-3162
-3163
-3164
-3165
-3166
-3167
-3168
-3169
-3170
-3171
-3172
-3173
-3174
-3175
-3176
-3177
-3178
-3179
-3180
-3181
-3182
-3183
-3184
-3185
-3186
-3187
-3188
-3189
-3190
-3191
-3192
-3193
-3194
-3195
-3196
-3197
-3198
-3199
-3200
-3201
-3202
-3203
-3204
-3205
-3206
-3207
-3208
-3209
-3210
-3211
-3212
-3213
-3214
-3215
-3216
-3217
-3218
-3219
-3220
-3221
-3222
-3223
-3224
-3225
-3226
-3227
-3228
-3229
-3230
-3231
-3232
-3233
-3234
-3235
-3236
-3237
-3238
-3239
-3240
-3241
-3242
-3243
-3244
-3245
-3246
-3247
-3248
-3249
-3250
-3251
-3252
-3253
-3254
-3255
-3256
-3257
-3258
-3259
-3260
-3261
-3262
-3263
-3264
-3265
-3266
-3267
-3268
-3269
-3270
-3271
-3272
-3273
-3274
-3275
-3276
-3277
-3278
-3279
-3280
-3281
-3282
-3283
-3284
-3285
-3286
-3287
-3288
-3289
-3290
-3291
-3292
-3293
-3294
-3295
-3296
-3297
-3298
-3299
-3300
-3301
-3302
-3303
-3304
-3305
-3306
-3307
-3308
-3309
-3310
-3311
-3312
-3313
-3314
-3315
-3316
-3317
-3318
-3319
-3320
-3321
-3322
-3323
-3324
-3325
-3326
-3327
-3328
-3329
-3330
-3331
-3332
-3333
-3334
-3335
-3336
-3337
-3338
-3339
-3340
-3341
-3342
-3343
-3344
-3345
-3346
-3347
-3348
-3349
-3350
-3351
-3352
-3353
-3354
-3355
-3356
-3357
-3358
-3359
-3360
-3361
-3362
-3363
-3364
-3365
-3366
-3367
-3368
-3369
-3370
-3371
-3372
-3373
-3374
-3375
-3376
-3377
-3378
-3379
-3380
-3381
-3382
-3383
-3384
-3385
-3386
-3387
-3388
-3389
-3390
-3391
-3392
-3393
-3394
-3395
-3396
-3397
-3398
-3399
-3400
-3401
-3402
-3403
-3404
-3405
-3406
-3407
-3408
-3409
-3410
-3411
-3412
-3413
-3414
-3415
-3416
-3417
-3418
-3419
-3420
-3421
-3422
-3423
-3424
-3425
-3426
-3427
-3428
-3429
-3430
-3431
-3432
-3433
-3434
-3435
-3436
-3437
-3438
-3439
-3440
-3441
-3442
-3443
-3444
-3445
-3446
-3447
-3448
-3449
-3450
-3451
-3452
-3453
-3454
-3455
-3456
-3457
-3458
-3459
-3460
-3461
-3462
-3463
-3464
-3465
-3466
-3467
-3468
-3469
-3470
-3471
-3472
-3473
-3474
-3475
-3476
-3477
-3478
-3479
-3480
-3481
-3482
-3483
-3484
-3485
-3486
-3487
-3488
-3489
-3490
-3491
-3492
-3493
-3494
-3495
-3496
-3497
-3498
-3499
-3500
-3501
-3502
-3503
-3504
-3505
-3506
-3507
-3508
-3509
-3510
-3511
-3512
-3513
-3514
-3515
-3516
-3517
-3518
-3519
-3520
-3521
-3522
-3523
-3524
-3525
-3526
-3527
-3528
-3529
-3530
-3531
-3532
-3533
-3534
-3535
-3536
-3537
-3538
-3539
-3540
-3541
-3542
-3543
-3544
-3545
-3546
-3547
-3548
-3549
-3550
-3551
-3552
-3553
-3554
-3555
-3556
-3557
-3558
-3559
-3560
-3561
-3562
-3563
-3564
-3565
-3566
-3567
-3568
-3569
-3570
-3571
-3572
-3573
-3574
-3575
-3576
-3577
-3578
-3579
-3580
-3581
-3582
-3583
-3584
-3585
-3586
-3587
-3588
-3589
-3590
-3591
-3592
-3593
-3594
-3595
-3596
-3597
-3598
-3599
-3600
-3601
-3602
-3603
-3604
-3605
-3606
-3607
-3608
-3609
-3610
-3611
-3612
-3613
-3614
-3615
-3616
-3617
-3618
-3619
-3620
-3621
-3622
-3623
-3624
-3625
-3626
-3627
-3628
-3629
-3630
-3631
-3632
-3633
-3634
-3635
-3636
-3637
-3638
-3639
-3640
-3641
-3642
-3643
-3644
-3645
-3646
-3647
-3648
-3649
-3650
-3651
-3652
-3653
-3654
-3655
-3656
-3657
-3658
-3659
-3660
-3661
-3662
-3663
-3664
-3665
-3666
-3667
-3668
-3669
-3670
-3671
-3672
-3673
-3674
-3675
-3676
-3677
-3678
-3679
-3680
-3681
-3682
-3683
-3684
-3685
-3686
-3687
-3688
-3689
-3690
-3691
-3692
-3693
-3694
-3695
-3696
-3697
-3698
-3699
-3700
-3701
-3702
-3703
-3704
-3705
-3706
-3707
-3708
-3709
-3710
-3711
-3712
-3713
-3714
-3715
-3716
-3717
-3718
-3719
-3720
-3721
-3722
-3723
-3724
-3725
-3726
-3727
-3728
-3729
-3730
-3731
-3732
-3733
-3734
-3735
-3736
-3737
-3738
-3739
-3740
-3741
-3742
-3743
-3744
-3745
-3746
-3747
-3748
-3749
-3750
-3751
-3752
-3753
-3754
-3755
-3756
-3757
-3758
-3759
-3760
-3761
-3762
-3763
-3764
-3765
-3766
-3767
-3768
-3769
-3770
-3771
-3772
-3773
-3774
-3775
-3776
-3777
-3778
-3779
-3780
-3781
-3782
-3783
-3784
-3785
-3786
-3787
-3788
-3789
-3790
-3791
-3792
-3793
-3794
-3795
-3796
-3797
-3798
-3799
-3800
-3801
-3802
-3803
-3804
-3805
-3806
-3807
-3808
-3809
-3810
-3811
-3812
-3813
-3814
-3815
-3816
-3817
-3818
-3819
-3820
-3821
-3822
-3823
-3824
-3825
-3826
-3827
-3828
-3829
-3830
-3831
-3832
-3833
-3834
-3835
-3836
-3837
-3838
-3839
-3840
-3841
-3842
-3843
-3844
-3845
-3846
-3847
-3848
-3849
-3850
-3851
-3852
-3853
-3854
-3855
-3856
-3857
-3858
-3859
-3860
-3861
-3862
-3863
-3864
-3865
-3866
-3867
-3868
-3869
-3870
-3871
-3872
-3873
-3874
-3875
-3876
-3877
-3878
-3879
-3880
-3881
-3882
-3883
-3884
-3885
-3886
-3887
-3888
-3889
-3890
-3891
-3892
-3893
-3894
-3895
-3896
-3897
-3898
-3899
-3900
-3901
-3902
-3903
-3904
-3905
-3906
-3907
-3908
-3909
-3910
-3911
-3912
-3913
-3914
-3915
-3916
-3917
-3918
-3919
-3920
-3921
-3922
-3923
-3924
-3925
-3926
-3927
-3928
-3929
-3930
-3931
-3932
-3933
-3934
-3935
-3936
-3937
-3938
-3939
-3940
-3941
-3942
-3943
-3944
-3945
-3946
-3947
-3948
-3949
-3950
-3951
-3952
-3953
-3954
-3955
-3956
-3957
-3958
-3959
-3960
-3961
-3962
-3963
-3964
-3965
-3966
-3967
-3968
-3969
-3970
-3971
-3972
-3973
-3974
-3975
-3976
-3977
-3978
-3979
-3980
-3981
-3982
-3983
-3984
-3985
-3986
-3987
-3988
-3989
-3990
-3991
-3992
-3993
-3994
-3995
-3996
-3997
-3998
-3999
-4000
-4001
-4002
-4003
-4004
-4005
-4006
-4007
-4008
-4009
-4010
-4011
-4012
-4013
-4014
-4015
-4016
-4017
-4018
-4019
-4020
-4021
-4022
-4023
-4024
-4025
-4026
-4027
-4028
-4029
-4030
-4031
-4032
-4033
-4034
-4035
-4036
-4037
-4038
-4039
-4040
-4041
-4042
-4043
-4044
-4045
-4046
-4047
-4048
-4049
-4050
-4051
-4052
-4053
-4054
-4055
-4056
-4057
-4058
-4059
-4060
-4061
-4062
-4063
-4064
-4065
-4066
-4067
-4068
-4069
-4070
-4071
-4072
-4073
-4074
-4075
-4076
-4077
-4078
-4079
-4080
-4081
-4082
-4083
-4084
-4085
-4086
-4087
-4088
-4089
-4090
-4091
-4092
-4093
-4094
-4095
-4096
-4097
-4098
-4099
-4100
-4101
-4102
-4103
-4104
-4105
-4106
-4107
-4108
-4109
-4110
-4111
-4112
-4113
-4114
-4115
-4116
-4117
-4118
-4119
-4120
-4121
-4122
-4123
-4124
-4125
-4126
-4127
-4128
-4129
-4130
-4131
-4132
-4133
-4134
-4135
-4136
-4137
-4138
-4139
-4140
-4141
-4142
-4143
-4144
-4145
-4146
-4147
-4148
-4149
-4150
-4151
-4152
-4153
-4154
-4155
-4156
-4157
-4158
-4159
-4160
-4161
-4162
-4163
-4164
-4165
-4166
-4167
-4168
-4169
-4170
-4171
-4172
-4173
-4174
-4175
-4176
-4177
-4178
-4179
-4180
-4181
-4182
-4183
-4184
-4185
-4186
-4187
-4188
-4189
-4190
-4191
-4192
-4193
-4194
-4195
-4196
-4197
-4198
-4199
-4200
-4201
-4202
-4203
-4204
-4205
-4206
-4207
-4208
-4209
-4210
-4211
-4212
-4213
-4214
-4215
-4216
-4217
-4218
-4219
-4220
-4221
-4222
-4223
-4224
-4225
-4226
-4227
-4228
-4229
-4230
-4231
-4232
-4233
-4234
-4235
-4236
-4237
-4238
-4239
-4240
-4241
-4242
-4243
-4244
-4245
-4246
-4247
-4248
-4249
-4250
-4251
-4252
-4253
-4254
-4255
-4256
-4257
-4258
-4259
-4260
-4261
-4262
-4263
-4264
-4265
-4266
-4267
-4268
-4269
-4270
-4271
-4272
-4273
-4274
-4275
-4276
-4277
-4278
-4279
-4280
-4281
-4282
-4283
-4284
-4285
-4286
-4287
-4288
-4289
-4290
-4291
-4292
-4293
-4294
-4295
-4296
-4297
-4298
-4299
-4300
-4301
-4302
-4303
-4304
-4305
-4306
-4307
-4308
-4309
-4310
-4311
-4312
-4313
-4314
-4315
-4316
-4317
-4318
-4319
-4320
-4321
-4322
-4323
-4324
-4325
-4326
-4327
-4328
-4329
-4330
-4331
-4332
-4333
-4334
-4335
-4336
-4337
-4338
-4339
-4340
-4341
-4342
-4343
-4344
-4345
-4346
-4347
-4348
-4349
-4350
-4351
-4352
-4353
-4354
-4355
-4356
-4357
-4358
-4359
-4360
-4361
-4362
-4363
-4364
-4365
-4366
-4367
-4368
-4369
-4370
-4371
-4372
-4373
-4374
-4375
-4376
-4377
-4378
-4379
-4380
-4381
-4382
-4383
-4384
-4385
-4386
-4387
-4388
-4389
-4390
-4391
-4392
-4393
-4394
-4395
-4396
-4397
-4398
-4399
-4400
-4401
-4402
-4403
-4404
-4405
-4406
-4407
-4408
-4409
-4410
-4411
-4412
-4413
-4414
-4415
-4416
-4417
-4418
-4419
-4420
-4421
-4422
-4423
-4424
-4425
-4426
-4427
-4428
-4429
-4430
-4431
-4432
-4433
-4434
-4435
-4436
-4437
-4438
-4439
-4440
-4441
-4442
-4443
-4444
-4445
-4446
-4447
-4448
-4449
-4450
-4451
-4452
-4453
-4454
-4455
-4456
-4457
-4458
-4459
-4460
-4461
-4462
-4463
-4464
-4465
-4466
-4467
-4468
-4469
-4470
-4471
-4472
-4473
-4474
-4475
-4476
-4477
-4478
-4479
-4480
-4481
-4482
-4483
-4484
-4485
-4486
-4487
-4488
-4489
-4490
-4491
-4492
-
//! Linux-specific definitions for linux-like values
-
-pub type useconds_t = u32;
-pub type dev_t = u64;
-pub type socklen_t = u32;
-pub type mode_t = u32;
-pub type ino64_t = u64;
-pub type off64_t = i64;
-pub type blkcnt64_t = i64;
-pub type rlim64_t = u64;
-pub type mqd_t = ::c_int;
-pub type nfds_t = ::c_ulong;
-pub type nl_item = ::c_int;
-pub type idtype_t = ::c_uint;
-pub type loff_t = ::c_longlong;
-pub type pthread_key_t = ::c_uint;
-pub type pthread_spinlock_t = ::c_int;
-
-pub type __u8 = ::c_uchar;
-pub type __u16 = ::c_ushort;
-pub type __s16 = ::c_short;
-pub type __u32 = ::c_uint;
-pub type __s32 = ::c_int;
-
-pub type Elf32_Half = u16;
-pub type Elf32_Word = u32;
-pub type Elf32_Off = u32;
-pub type Elf32_Addr = u32;
-
-pub type Elf64_Half = u16;
-pub type Elf64_Word = u32;
-pub type Elf64_Off = u64;
-pub type Elf64_Addr = u64;
-pub type Elf64_Xword = u64;
-pub type Elf64_Sxword = i64;
-
-pub type Elf32_Section = u16;
-pub type Elf64_Section = u16;
-
-// linux/can.h
-pub type canid_t = u32;
-
-// linux/can/j1939.h
-pub type can_err_mask_t = u32;
-pub type pgn_t = u32;
-pub type priority_t = u8;
-pub type name_t = u64;
-
-pub type iconv_t = *mut ::c_void;
-
-#[cfg_attr(feature = "extra_traits", derive(Debug))]
-pub enum fpos64_t {} // FIXME: fill this out with a struct
-impl ::Copy for fpos64_t {}
-impl ::Clone for fpos64_t {
-    fn clone(&self) -> fpos64_t {
-        *self
-    }
-}
-
-s! {
-    pub struct rlimit64 {
-        pub rlim_cur: rlim64_t,
-        pub rlim_max: rlim64_t,
-    }
-
-    pub struct glob_t {
-        pub gl_pathc: ::size_t,
-        pub gl_pathv: *mut *mut c_char,
-        pub gl_offs: ::size_t,
-        pub gl_flags: ::c_int,
-
-        __unused1: *mut ::c_void,
-        __unused2: *mut ::c_void,
-        __unused3: *mut ::c_void,
-        __unused4: *mut ::c_void,
-        __unused5: *mut ::c_void,
-    }
-
-    pub struct passwd {
-        pub pw_name: *mut ::c_char,
-        pub pw_passwd: *mut ::c_char,
-        pub pw_uid: ::uid_t,
-        pub pw_gid: ::gid_t,
-        pub pw_gecos: *mut ::c_char,
-        pub pw_dir: *mut ::c_char,
-        pub pw_shell: *mut ::c_char,
-    }
-
-    pub struct spwd {
-        pub sp_namp: *mut ::c_char,
-        pub sp_pwdp: *mut ::c_char,
-        pub sp_lstchg: ::c_long,
-        pub sp_min: ::c_long,
-        pub sp_max: ::c_long,
-        pub sp_warn: ::c_long,
-        pub sp_inact: ::c_long,
-        pub sp_expire: ::c_long,
-        pub sp_flag: ::c_ulong,
-    }
-
-    pub struct dqblk {
-        pub dqb_bhardlimit: u64,
-        pub dqb_bsoftlimit: u64,
-        pub dqb_curspace: u64,
-        pub dqb_ihardlimit: u64,
-        pub dqb_isoftlimit: u64,
-        pub dqb_curinodes: u64,
-        pub dqb_btime: u64,
-        pub dqb_itime: u64,
-        pub dqb_valid: u32,
-    }
-
-    pub struct signalfd_siginfo {
-        pub ssi_signo: u32,
-        pub ssi_errno: i32,
-        pub ssi_code: i32,
-        pub ssi_pid: u32,
-        pub ssi_uid: u32,
-        pub ssi_fd: i32,
-        pub ssi_tid: u32,
-        pub ssi_band: u32,
-        pub ssi_overrun: u32,
-        pub ssi_trapno: u32,
-        pub ssi_status: i32,
-        pub ssi_int: i32,
-        pub ssi_ptr: u64,
-        pub ssi_utime: u64,
-        pub ssi_stime: u64,
-        pub ssi_addr: u64,
-        pub ssi_addr_lsb: u16,
-        _pad2: u16,
-        pub ssi_syscall: i32,
-        pub ssi_call_addr: u64,
-        pub ssi_arch: u32,
-        _pad: [u8; 28],
-    }
-
-    pub struct itimerspec {
-        pub it_interval: ::timespec,
-        pub it_value: ::timespec,
-    }
-
-    pub struct fsid_t {
-        __val: [::c_int; 2],
-    }
-
-    pub struct packet_mreq {
-        pub mr_ifindex: ::c_int,
-        pub mr_type: ::c_ushort,
-        pub mr_alen: ::c_ushort,
-        pub mr_address: [::c_uchar; 8],
-    }
-
-    pub struct cpu_set_t {
-        #[cfg(all(target_pointer_width = "32",
-                  not(target_arch = "x86_64")))]
-        bits: [u32; 32],
-        #[cfg(not(all(target_pointer_width = "32",
-                      not(target_arch = "x86_64"))))]
-        bits: [u64; 16],
-    }
-
-    pub struct if_nameindex {
-        pub if_index: ::c_uint,
-        pub if_name: *mut ::c_char,
-    }
-
-    // System V IPC
-    pub struct msginfo {
-        pub msgpool: ::c_int,
-        pub msgmap: ::c_int,
-        pub msgmax: ::c_int,
-        pub msgmnb: ::c_int,
-        pub msgmni: ::c_int,
-        pub msgssz: ::c_int,
-        pub msgtql: ::c_int,
-        pub msgseg: ::c_ushort,
-    }
-
-    pub struct sembuf {
-        pub sem_num: ::c_ushort,
-        pub sem_op: ::c_short,
-        pub sem_flg: ::c_short,
-    }
-
-    pub struct input_event {
-        pub time: ::timeval,
-        pub type_: ::__u16,
-        pub code: ::__u16,
-        pub value: ::__s32,
-    }
-
-    pub struct input_id {
-        pub bustype: ::__u16,
-        pub vendor: ::__u16,
-        pub product: ::__u16,
-        pub version: ::__u16,
-    }
-
-    pub struct input_absinfo {
-        pub value: ::__s32,
-        pub minimum: ::__s32,
-        pub maximum: ::__s32,
-        pub fuzz: ::__s32,
-        pub flat: ::__s32,
-        pub resolution: ::__s32,
-    }
-
-    pub struct input_keymap_entry {
-        pub flags: ::__u8,
-        pub len: ::__u8,
-        pub index: ::__u16,
-        pub keycode: ::__u32,
-        pub scancode: [::__u8; 32],
-    }
-
-    pub struct input_mask {
-        pub type_: ::__u32,
-        pub codes_size: ::__u32,
-        pub codes_ptr: ::__u64,
-    }
-
-    pub struct ff_replay {
-        pub length: ::__u16,
-        pub delay: ::__u16,
-    }
-
-    pub struct ff_trigger {
-        pub button: ::__u16,
-        pub interval: ::__u16,
-    }
-
-    pub struct ff_envelope {
-        pub attack_length: ::__u16,
-        pub attack_level: ::__u16,
-        pub fade_length: ::__u16,
-        pub fade_level: ::__u16,
-    }
-
-    pub struct ff_constant_effect {
-        pub level: ::__s16,
-        pub envelope: ff_envelope,
-    }
-
-    pub struct ff_ramp_effect {
-        pub start_level: ::__s16,
-        pub end_level: ::__s16,
-        pub envelope: ff_envelope,
-    }
-
-    pub struct ff_condition_effect {
-        pub right_saturation: ::__u16,
-        pub left_saturation: ::__u16,
-
-        pub right_coeff: ::__s16,
-        pub left_coeff: ::__s16,
-
-        pub deadband: ::__u16,
-        pub center: ::__s16,
-    }
-
-    pub struct ff_periodic_effect {
-        pub waveform: ::__u16,
-        pub period: ::__u16,
-        pub magnitude: ::__s16,
-        pub offset: ::__s16,
-        pub phase: ::__u16,
-
-        pub envelope: ff_envelope,
-
-        pub custom_len: ::__u32,
-        pub custom_data: *mut ::__s16,
-    }
-
-    pub struct ff_rumble_effect {
-        pub strong_magnitude: ::__u16,
-        pub weak_magnitude: ::__u16,
-    }
-
-    pub struct ff_effect {
-        pub type_: ::__u16,
-        pub id: ::__s16,
-        pub direction: ::__u16,
-        pub trigger: ff_trigger,
-        pub replay: ff_replay,
-        // FIXME this is actually a union
-        #[cfg(target_pointer_width = "64")]
-        pub u: [u64; 4],
-        #[cfg(target_pointer_width = "32")]
-        pub u: [u32; 7],
-    }
-
-    pub struct uinput_ff_upload {
-        pub request_id: ::__u32,
-        pub retval: ::__s32,
-        pub effect: ff_effect,
-        pub old: ff_effect,
-    }
-
-    pub struct uinput_ff_erase {
-        pub request_id: ::__u32,
-        pub retval: ::__s32,
-        pub effect_id: ::__u32,
-    }
-
-    pub struct uinput_abs_setup {
-        pub code: ::__u16,
-        pub absinfo: input_absinfo,
-    }
-
-    pub struct dl_phdr_info {
-        #[cfg(target_pointer_width = "64")]
-        pub dlpi_addr: Elf64_Addr,
-        #[cfg(target_pointer_width = "32")]
-        pub dlpi_addr: Elf32_Addr,
-
-        pub dlpi_name: *const ::c_char,
-
-        #[cfg(target_pointer_width = "64")]
-        pub dlpi_phdr: *const Elf64_Phdr,
-        #[cfg(target_pointer_width = "32")]
-        pub dlpi_phdr: *const Elf32_Phdr,
-
-        #[cfg(target_pointer_width = "64")]
-        pub dlpi_phnum: Elf64_Half,
-        #[cfg(target_pointer_width = "32")]
-        pub dlpi_phnum: Elf32_Half,
-
-        // As of uClibc 1.0.36, the following fields are
-        // gated behind a "#if 0" block which always evaluates
-        // to false. So I'm just removing these, and if uClibc changes
-        // the #if block in the future to include the following fields, these
-        // will probably need including here. tsidea, skrap
-        #[cfg(not(target_env = "uclibc"))]
-        pub dlpi_adds: ::c_ulonglong,
-        #[cfg(not(target_env = "uclibc"))]
-        pub dlpi_subs: ::c_ulonglong,
-        #[cfg(not(target_env = "uclibc"))]
-        pub dlpi_tls_modid: ::size_t,
-        #[cfg(not(target_env = "uclibc"))]
-        pub dlpi_tls_data: *mut ::c_void,
-    }
-
-    pub struct Elf32_Ehdr {
-        pub e_ident: [::c_uchar; 16],
-        pub e_type: Elf32_Half,
-        pub e_machine: Elf32_Half,
-        pub e_version: Elf32_Word,
-        pub e_entry: Elf32_Addr,
-        pub e_phoff: Elf32_Off,
-        pub e_shoff: Elf32_Off,
-        pub e_flags: Elf32_Word,
-        pub e_ehsize: Elf32_Half,
-        pub e_phentsize: Elf32_Half,
-        pub e_phnum: Elf32_Half,
-        pub e_shentsize: Elf32_Half,
-        pub e_shnum: Elf32_Half,
-        pub e_shstrndx: Elf32_Half,
-    }
-
-    pub struct Elf64_Ehdr {
-        pub e_ident: [::c_uchar; 16],
-        pub e_type: Elf64_Half,
-        pub e_machine: Elf64_Half,
-        pub e_version: Elf64_Word,
-        pub e_entry: Elf64_Addr,
-        pub e_phoff: Elf64_Off,
-        pub e_shoff: Elf64_Off,
-        pub e_flags: Elf64_Word,
-        pub e_ehsize: Elf64_Half,
-        pub e_phentsize: Elf64_Half,
-        pub e_phnum: Elf64_Half,
-        pub e_shentsize: Elf64_Half,
-        pub e_shnum: Elf64_Half,
-        pub e_shstrndx: Elf64_Half,
-    }
-
-    pub struct Elf32_Sym {
-        pub st_name: Elf32_Word,
-        pub st_value: Elf32_Addr,
-        pub st_size: Elf32_Word,
-        pub st_info: ::c_uchar,
-        pub st_other: ::c_uchar,
-        pub st_shndx: Elf32_Section,
-    }
-
-    pub struct Elf64_Sym {
-        pub st_name: Elf64_Word,
-        pub st_info: ::c_uchar,
-        pub st_other: ::c_uchar,
-        pub st_shndx: Elf64_Section,
-        pub st_value: Elf64_Addr,
-        pub st_size: Elf64_Xword,
-    }
-
-    pub struct Elf32_Phdr {
-        pub p_type: Elf32_Word,
-        pub p_offset: Elf32_Off,
-        pub p_vaddr: Elf32_Addr,
-        pub p_paddr: Elf32_Addr,
-        pub p_filesz: Elf32_Word,
-        pub p_memsz: Elf32_Word,
-        pub p_flags: Elf32_Word,
-        pub p_align: Elf32_Word,
-    }
-
-    pub struct Elf64_Phdr {
-        pub p_type: Elf64_Word,
-        pub p_flags: Elf64_Word,
-        pub p_offset: Elf64_Off,
-        pub p_vaddr: Elf64_Addr,
-        pub p_paddr: Elf64_Addr,
-        pub p_filesz: Elf64_Xword,
-        pub p_memsz: Elf64_Xword,
-        pub p_align: Elf64_Xword,
-    }
-
-    pub struct Elf32_Shdr {
-        pub sh_name: Elf32_Word,
-        pub sh_type: Elf32_Word,
-        pub sh_flags: Elf32_Word,
-        pub sh_addr: Elf32_Addr,
-        pub sh_offset: Elf32_Off,
-        pub sh_size: Elf32_Word,
-        pub sh_link: Elf32_Word,
-        pub sh_info: Elf32_Word,
-        pub sh_addralign: Elf32_Word,
-        pub sh_entsize: Elf32_Word,
-    }
-
-    pub struct Elf64_Shdr {
-        pub sh_name: Elf64_Word,
-        pub sh_type: Elf64_Word,
-        pub sh_flags: Elf64_Xword,
-        pub sh_addr: Elf64_Addr,
-        pub sh_offset: Elf64_Off,
-        pub sh_size: Elf64_Xword,
-        pub sh_link: Elf64_Word,
-        pub sh_info: Elf64_Word,
-        pub sh_addralign: Elf64_Xword,
-        pub sh_entsize: Elf64_Xword,
-    }
-
-    pub struct ucred {
-        pub pid: ::pid_t,
-        pub uid: ::uid_t,
-        pub gid: ::gid_t,
-    }
-
-    pub struct mntent {
-        pub mnt_fsname: *mut ::c_char,
-        pub mnt_dir: *mut ::c_char,
-        pub mnt_type: *mut ::c_char,
-        pub mnt_opts: *mut ::c_char,
-        pub mnt_freq: ::c_int,
-        pub mnt_passno: ::c_int,
-    }
-
-    pub struct posix_spawn_file_actions_t {
-        __allocated: ::c_int,
-        __used: ::c_int,
-        __actions: *mut ::c_int,
-        __pad: [::c_int; 16],
-    }
-
-    pub struct posix_spawnattr_t {
-        __flags: ::c_short,
-        __pgrp: ::pid_t,
-        __sd: ::sigset_t,
-        __ss: ::sigset_t,
-        #[cfg(target_env = "musl")]
-        __prio: ::c_int,
-        #[cfg(not(target_env = "musl"))]
-        __sp: ::sched_param,
-        __policy: ::c_int,
-        __pad: [::c_int; 16],
-    }
-
-    pub struct genlmsghdr {
-        pub cmd: u8,
-        pub version: u8,
-        pub reserved: u16,
-    }
-
-    pub struct in6_pktinfo {
-        pub ipi6_addr: ::in6_addr,
-        pub ipi6_ifindex: ::c_uint,
-    }
-
-    pub struct arpd_request {
-        pub req: ::c_ushort,
-        pub ip: u32,
-        pub dev: ::c_ulong,
-        pub stamp: ::c_ulong,
-        pub updated: ::c_ulong,
-        pub ha: [::c_uchar; ::MAX_ADDR_LEN],
-    }
-
-    pub struct inotify_event {
-        pub wd: ::c_int,
-        pub mask: u32,
-        pub cookie: u32,
-        pub len: u32
-    }
-
-    pub struct fanotify_response {
-        pub fd: ::c_int,
-        pub response: __u32,
-    }
-
-    pub struct sockaddr_vm {
-        pub svm_family: ::sa_family_t,
-        pub svm_reserved1: ::c_ushort,
-        pub svm_port: ::c_uint,
-        pub svm_cid: ::c_uint,
-        pub svm_zero: [u8; 4]
-    }
-
-    pub struct regmatch_t {
-        pub rm_so: regoff_t,
-        pub rm_eo: regoff_t,
-    }
-
-    pub struct sock_extended_err {
-        pub ee_errno: u32,
-        pub ee_origin: u8,
-        pub ee_type: u8,
-        pub ee_code: u8,
-        pub ee_pad: u8,
-        pub ee_info: u32,
-        pub ee_data: u32,
-    }
-
-    // linux/can.h
-    pub struct __c_anonymous_sockaddr_can_tp {
-        pub rx_id: canid_t,
-        pub tx_id: canid_t,
-    }
-
-    pub struct __c_anonymous_sockaddr_can_j1939 {
-        pub name: u64,
-        pub pgn: u32,
-        pub addr: u8,
-    }
-
-    pub struct can_filter {
-        pub can_id: canid_t,
-        pub can_mask: canid_t,
-    }
-
-    // linux/can/j1939.h
-    pub struct j1939_filter {
-        pub name: name_t,
-        pub name_mask: name_t,
-        pub pgn: pgn_t,
-        pub pgn_mask: pgn_t,
-        pub addr: u8,
-        pub addr_mask: u8,
-    }
-
-    // linux/filter.h
-    pub struct sock_filter {
-        pub code: ::__u16,
-        pub jt: ::__u8,
-        pub jf: ::__u8,
-        pub k: ::__u32,
-    }
-
-    pub struct sock_fprog {
-        pub len: ::c_ushort,
-        pub filter: *mut sock_filter,
-    }
-
-    // linux/seccomp.h
-    pub struct seccomp_data {
-        pub nr: ::c_int,
-        pub arch: ::__u32,
-        pub instruction_pointer: ::__u64,
-        pub args: [::__u64; 6],
-    }
-
-    pub struct nlmsghdr {
-        pub nlmsg_len: u32,
-        pub nlmsg_type: u16,
-        pub nlmsg_flags: u16,
-        pub nlmsg_seq: u32,
-        pub nlmsg_pid: u32,
-    }
-
-    pub struct nlmsgerr {
-        pub error: ::c_int,
-        pub msg: nlmsghdr,
-    }
-
-    pub struct nlattr {
-        pub nla_len: u16,
-        pub nla_type: u16,
-    }
-
-    pub struct file_clone_range {
-        pub src_fd: ::__s64,
-        pub src_offset: ::__u64,
-        pub src_length: ::__u64,
-        pub dest_offset: ::__u64,
-    }
-
-    pub struct __c_anonymous_ifru_map {
-        pub mem_start: ::c_ulong,
-        pub mem_end: ::c_ulong,
-        pub base_addr: ::c_ushort,
-        pub irq: ::c_uchar,
-        pub dma: ::c_uchar,
-        pub port: ::c_uchar,
-    }
-
-   pub struct in6_ifreq {
-       pub ifr6_addr: ::in6_addr,
-       pub ifr6_prefixlen: u32,
-       pub ifr6_ifindex: ::c_int,
-   }
-
-    pub struct option {
-        pub name: *const ::c_char,
-        pub has_arg: ::c_int,
-        pub flag: *mut ::c_int,
-        pub val: ::c_int,
-    }
-}
-
-s_no_extra_traits! {
-    pub struct sockaddr_nl {
-        pub nl_family: ::sa_family_t,
-        nl_pad: ::c_ushort,
-        pub nl_pid: u32,
-        pub nl_groups: u32
-    }
-
-    pub struct dirent {
-        pub d_ino: ::ino_t,
-        pub d_off: ::off_t,
-        pub d_reclen: ::c_ushort,
-        pub d_type: ::c_uchar,
-        pub d_name: [::c_char; 256],
-    }
-
-    pub struct dirent64 {
-        pub d_ino: ::ino64_t,
-        pub d_off: ::off64_t,
-        pub d_reclen: ::c_ushort,
-        pub d_type: ::c_uchar,
-        pub d_name: [::c_char; 256],
-    }
-
-    pub struct sockaddr_alg {
-        pub salg_family: ::sa_family_t,
-        pub salg_type: [::c_uchar; 14],
-        pub salg_feat: u32,
-        pub salg_mask: u32,
-        pub salg_name: [::c_uchar; 64],
-    }
-
-    pub struct uinput_setup {
-        pub id: input_id,
-        pub name: [::c_char; UINPUT_MAX_NAME_SIZE],
-        pub ff_effects_max: ::__u32,
-    }
-
-    pub struct uinput_user_dev {
-        pub name: [::c_char; UINPUT_MAX_NAME_SIZE],
-        pub id: input_id,
-        pub ff_effects_max: ::__u32,
-        pub absmax: [::__s32; ABS_CNT],
-        pub absmin: [::__s32; ABS_CNT],
-        pub absfuzz: [::__s32; ABS_CNT],
-        pub absflat: [::__s32; ABS_CNT],
-    }
-
-    /// WARNING: The `PartialEq`, `Eq` and `Hash` implementations of this
-    /// type are unsound and will be removed in the future.
-    #[deprecated(
-        note = "this struct has unsafe trait implementations that will be \
-                removed in the future",
-        since = "0.2.80"
-    )]
-    pub struct af_alg_iv {
-        pub ivlen: u32,
-        pub iv: [::c_uchar; 0],
-    }
-
-    // x32 compatibility
-    // See https://sourceware.org/bugzilla/show_bug.cgi?id=21279
-    pub struct mq_attr {
-        #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
-        pub mq_flags: i64,
-        #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
-        pub mq_maxmsg: i64,
-        #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
-        pub mq_msgsize: i64,
-        #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
-        pub mq_curmsgs: i64,
-        #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
-        pad: [i64; 4],
-
-        #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
-        pub mq_flags: ::c_long,
-        #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
-        pub mq_maxmsg: ::c_long,
-        #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
-        pub mq_msgsize: ::c_long,
-        #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
-        pub mq_curmsgs: ::c_long,
-        #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
-        pad: [::c_long; 4],
-    }
-
-    #[cfg(libc_union)]
-    pub union __c_anonymous_ifr_ifru {
-        pub ifru_addr: ::sockaddr,
-        pub ifru_dstaddr: ::sockaddr,
-        pub ifru_broadaddr: ::sockaddr,
-        pub ifru_netmask: ::sockaddr,
-        pub ifru_hwaddr: ::sockaddr,
-        pub ifru_flags: ::c_short,
-        pub ifru_ifindex: ::c_int,
-        pub ifru_metric: ::c_int,
-        pub ifru_mtu: ::c_int,
-        pub ifru_map: __c_anonymous_ifru_map,
-        pub ifru_slave: [::c_char; ::IFNAMSIZ],
-        pub ifru_newname: [::c_char; ::IFNAMSIZ],
-        pub ifru_data: *mut ::c_char,
-    }
-
-    pub struct ifreq {
-        /// interface name, e.g. "en0"
-        pub ifr_name: [::c_char; ::IFNAMSIZ],
-        #[cfg(libc_union)]
-        pub ifr_ifru: __c_anonymous_ifr_ifru,
-        #[cfg(not(libc_union))]
-        pub ifr_ifru: ::sockaddr,
-    }
-}
-
-s_no_extra_traits! {
-    // linux/net_tstamp.h
-    #[allow(missing_debug_implementations)]
-    pub struct sock_txtime {
-        pub clockid: ::clockid_t,
-        pub flags: ::__u32,
-    }
-}
-
-cfg_if! {
-    if #[cfg(libc_union)] {
-        s_no_extra_traits! {
-            // linux/can.h
-            #[allow(missing_debug_implementations)]
-            pub union __c_anonymous_sockaddr_can_can_addr {
-                pub tp: __c_anonymous_sockaddr_can_tp,
-                pub j1939: __c_anonymous_sockaddr_can_j1939,
-            }
-
-            #[allow(missing_debug_implementations)]
-            pub struct sockaddr_can {
-                pub can_family: ::sa_family_t,
-                pub can_ifindex: ::c_int,
-                pub can_addr: __c_anonymous_sockaddr_can_can_addr,
-            }
-        }
-    }
-}
-
-cfg_if! {
-    if #[cfg(feature = "extra_traits")] {
-        impl PartialEq for sockaddr_nl {
-            fn eq(&self, other: &sockaddr_nl) -> bool {
-                self.nl_family == other.nl_family &&
-                    self.nl_pid == other.nl_pid &&
-                    self.nl_groups == other.nl_groups
-            }
-        }
-        impl Eq for sockaddr_nl {}
-        impl ::fmt::Debug for sockaddr_nl {
-            fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
-                f.debug_struct("sockaddr_nl")
-                    .field("nl_family", &self.nl_family)
-                    .field("nl_pid", &self.nl_pid)
-                    .field("nl_groups", &self.nl_groups)
-                    .finish()
-            }
-        }
-        impl ::hash::Hash for sockaddr_nl {
-            fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
-                self.nl_family.hash(state);
-                self.nl_pid.hash(state);
-                self.nl_groups.hash(state);
-            }
-        }
-
-        impl PartialEq for dirent {
-            fn eq(&self, other: &dirent) -> bool {
-                self.d_ino == other.d_ino
-                    && self.d_off == other.d_off
-                    && self.d_reclen == other.d_reclen
-                    && self.d_type == other.d_type
-                    && self
-                    .d_name
-                    .iter()
-                    .zip(other.d_name.iter())
-                    .all(|(a,b)| a == b)
-            }
-        }
-
-        impl Eq for dirent {}
-
-        impl ::fmt::Debug for dirent {
-            fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
-                f.debug_struct("dirent")
-                    .field("d_ino", &self.d_ino)
-                    .field("d_off", &self.d_off)
-                    .field("d_reclen", &self.d_reclen)
-                    .field("d_type", &self.d_type)
-                // FIXME: .field("d_name", &self.d_name)
-                    .finish()
-            }
-        }
-
-        impl ::hash::Hash for dirent {
-            fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
-                self.d_ino.hash(state);
-                self.d_off.hash(state);
-                self.d_reclen.hash(state);
-                self.d_type.hash(state);
-                self.d_name.hash(state);
-            }
-        }
-
-        impl PartialEq for dirent64 {
-            fn eq(&self, other: &dirent64) -> bool {
-                self.d_ino == other.d_ino
-                    && self.d_off == other.d_off
-                    && self.d_reclen == other.d_reclen
-                    && self.d_type == other.d_type
-                    && self
-                    .d_name
-                    .iter()
-                    .zip(other.d_name.iter())
-                    .all(|(a,b)| a == b)
-            }
-        }
-
-        impl Eq for dirent64 {}
-
-        impl ::fmt::Debug for dirent64 {
-            fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
-                f.debug_struct("dirent64")
-                    .field("d_ino", &self.d_ino)
-                    .field("d_off", &self.d_off)
-                    .field("d_reclen", &self.d_reclen)
-                    .field("d_type", &self.d_type)
-                // FIXME: .field("d_name", &self.d_name)
-                    .finish()
-            }
-        }
-
-        impl ::hash::Hash for dirent64 {
-            fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
-                self.d_ino.hash(state);
-                self.d_off.hash(state);
-                self.d_reclen.hash(state);
-                self.d_type.hash(state);
-                self.d_name.hash(state);
-            }
-        }
-
-        impl PartialEq for pthread_cond_t {
-            fn eq(&self, other: &pthread_cond_t) -> bool {
-                self.size.iter().zip(other.size.iter()).all(|(a,b)| a == b)
-            }
-        }
-
-        impl Eq for pthread_cond_t {}
-
-        impl ::fmt::Debug for pthread_cond_t {
-            fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
-                f.debug_struct("pthread_cond_t")
-                // FIXME: .field("size", &self.size)
-                    .finish()
-            }
-        }
-
-        impl ::hash::Hash for pthread_cond_t {
-            fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
-                self.size.hash(state);
-            }
-        }
-
-        impl PartialEq for pthread_mutex_t {
-            fn eq(&self, other: &pthread_mutex_t) -> bool {
-                self.size.iter().zip(other.size.iter()).all(|(a,b)| a == b)
-            }
-        }
-
-        impl Eq for pthread_mutex_t {}
-
-        impl ::fmt::Debug for pthread_mutex_t {
-            fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
-                f.debug_struct("pthread_mutex_t")
-                // FIXME: .field("size", &self.size)
-                    .finish()
-            }
-        }
-
-        impl ::hash::Hash for pthread_mutex_t {
-            fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
-                self.size.hash(state);
-            }
-        }
-
-        impl PartialEq for pthread_rwlock_t {
-            fn eq(&self, other: &pthread_rwlock_t) -> bool {
-                self.size.iter().zip(other.size.iter()).all(|(a,b)| a == b)
-            }
-        }
-
-        impl Eq for pthread_rwlock_t {}
-
-        impl ::fmt::Debug for pthread_rwlock_t {
-            fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
-                f.debug_struct("pthread_rwlock_t")
-                // FIXME: .field("size", &self.size)
-                    .finish()
-            }
-        }
-
-        impl ::hash::Hash for pthread_rwlock_t {
-            fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
-                self.size.hash(state);
-            }
-        }
-
-        impl PartialEq for sockaddr_alg {
-            fn eq(&self, other: &sockaddr_alg) -> bool {
-                self.salg_family == other.salg_family
-                    && self
-                    .salg_type
-                    .iter()
-                    .zip(other.salg_type.iter())
-                    .all(|(a, b)| a == b)
-                    && self.salg_feat == other.salg_feat
-                    && self.salg_mask == other.salg_mask
-                    && self
-                    .salg_name
-                    .iter()
-                    .zip(other.salg_name.iter())
-                    .all(|(a, b)| a == b)
-           }
-        }
-
-        impl Eq for sockaddr_alg {}
-
-        impl ::fmt::Debug for sockaddr_alg {
-            fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
-                f.debug_struct("sockaddr_alg")
-                    .field("salg_family", &self.salg_family)
-                    .field("salg_type", &self.salg_type)
-                    .field("salg_feat", &self.salg_feat)
-                    .field("salg_mask", &self.salg_mask)
-                    .field("salg_name", &&self.salg_name[..])
-                    .finish()
-            }
-        }
-
-        impl ::hash::Hash for sockaddr_alg {
-            fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
-                self.salg_family.hash(state);
-                self.salg_type.hash(state);
-                self.salg_feat.hash(state);
-                self.salg_mask.hash(state);
-                self.salg_name.hash(state);
-            }
-        }
-
-        impl PartialEq for uinput_setup {
-            fn eq(&self, other: &uinput_setup) -> bool {
-                self.id == other.id
-                    && self.name[..] == other.name[..]
-                    && self.ff_effects_max == other.ff_effects_max
-           }
-        }
-        impl Eq for uinput_setup {}
-
-        impl ::fmt::Debug for uinput_setup {
-            fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
-                f.debug_struct("uinput_setup")
-                    .field("id", &self.id)
-                    .field("name", &&self.name[..])
-                    .field("ff_effects_max", &self.ff_effects_max)
-                    .finish()
-            }
-        }
-
-        impl ::hash::Hash for uinput_setup {
-            fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
-                self.id.hash(state);
-                self.name.hash(state);
-                self.ff_effects_max.hash(state);
-            }
-        }
-
-        impl PartialEq for uinput_user_dev {
-            fn eq(&self, other: &uinput_user_dev) -> bool {
-                 self.name[..] == other.name[..]
-                    && self.id == other.id
-                    && self.ff_effects_max == other.ff_effects_max
-                    && self.absmax[..] == other.absmax[..]
-                    && self.absmin[..] == other.absmin[..]
-                    && self.absfuzz[..] == other.absfuzz[..]
-                    && self.absflat[..] == other.absflat[..]
-           }
-        }
-        impl Eq for uinput_user_dev {}
-
-        impl ::fmt::Debug for uinput_user_dev {
-            fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
-                f.debug_struct("uinput_setup")
-                    .field("name", &&self.name[..])
-                    .field("id", &self.id)
-                    .field("ff_effects_max", &self.ff_effects_max)
-                    .field("absmax", &&self.absmax[..])
-                    .field("absmin", &&self.absmin[..])
-                    .field("absfuzz", &&self.absfuzz[..])
-                    .field("absflat", &&self.absflat[..])
-                    .finish()
-            }
-        }
-
-        impl ::hash::Hash for uinput_user_dev {
-            fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
-                self.name.hash(state);
-                self.id.hash(state);
-                self.ff_effects_max.hash(state);
-                self.absmax.hash(state);
-                self.absmin.hash(state);
-                self.absfuzz.hash(state);
-                self.absflat.hash(state);
-            }
-        }
-
-        #[allow(deprecated)]
-        impl af_alg_iv {
-            fn as_slice(&self) -> &[u8] {
-                unsafe {
-                    ::core::slice::from_raw_parts(
-                        self.iv.as_ptr(),
-                        self.ivlen as usize
-                    )
-                }
-            }
-        }
-
-        #[allow(deprecated)]
-        impl PartialEq for af_alg_iv {
-            fn eq(&self, other: &af_alg_iv) -> bool {
-                *self.as_slice() == *other.as_slice()
-           }
-        }
-
-        #[allow(deprecated)]
-        impl Eq for af_alg_iv {}
-
-        #[allow(deprecated)]
-        impl ::fmt::Debug for af_alg_iv {
-            fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
-                f.debug_struct("af_alg_iv")
-                    .field("ivlen", &self.ivlen)
-                    .finish()
-            }
-        }
-
-        #[allow(deprecated)]
-        impl ::hash::Hash for af_alg_iv {
-            fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
-                self.as_slice().hash(state);
-            }
-        }
-
-        impl PartialEq for mq_attr {
-            fn eq(&self, other: &mq_attr) -> bool {
-                self.mq_flags == other.mq_flags &&
-                self.mq_maxmsg == other.mq_maxmsg &&
-                self.mq_msgsize == other.mq_msgsize &&
-                self.mq_curmsgs == other.mq_curmsgs
-            }
-        }
-        impl Eq for mq_attr {}
-        impl ::fmt::Debug for mq_attr {
-            fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
-                f.debug_struct("mq_attr")
-                    .field("mq_flags", &self.mq_flags)
-                    .field("mq_maxmsg", &self.mq_maxmsg)
-                    .field("mq_msgsize", &self.mq_msgsize)
-                    .field("mq_curmsgs", &self.mq_curmsgs)
-                    .finish()
-            }
-        }
-        impl ::hash::Hash for mq_attr {
-            fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
-                self.mq_flags.hash(state);
-                self.mq_maxmsg.hash(state);
-                self.mq_msgsize.hash(state);
-                self.mq_curmsgs.hash(state);
-            }
-        }
-        #[cfg(libc_union)]
-        impl ::fmt::Debug for __c_anonymous_ifr_ifru {
-            fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
-                f.debug_struct("ifr_ifru")
-                    .field("ifru_addr", unsafe { &self.ifru_addr })
-                    .field("ifru_dstaddr", unsafe { &self.ifru_dstaddr })
-                    .field("ifru_broadaddr", unsafe { &self.ifru_broadaddr })
-                    .field("ifru_netmask", unsafe { &self.ifru_netmask })
-                    .field("ifru_hwaddr", unsafe { &self.ifru_hwaddr })
-                    .field("ifru_flags", unsafe { &self.ifru_flags })
-                    .field("ifru_ifindex", unsafe { &self.ifru_ifindex })
-                    .field("ifru_metric", unsafe { &self.ifru_metric })
-                    .field("ifru_mtu", unsafe { &self.ifru_mtu })
-                    .field("ifru_map", unsafe { &self.ifru_map })
-                    .field("ifru_slave", unsafe { &self.ifru_slave })
-                    .field("ifru_newname", unsafe { &self.ifru_newname })
-                    .field("ifru_data", unsafe { &self.ifru_data })
-                    .finish()
-            }
-        }
-        impl ::fmt::Debug for ifreq {
-            fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
-                f.debug_struct("ifreq")
-                    .field("ifr_name", &self.ifr_name)
-                    .field("ifr_ifru", &self.ifr_ifru)
-                    .finish()
-            }
-        }
-    }
-}
-
-cfg_if! {
-    if #[cfg(any(target_env = "gnu", target_env = "musl"))] {
-        pub const ABDAY_1: ::nl_item = 0x20000;
-        pub const ABDAY_2: ::nl_item = 0x20001;
-        pub const ABDAY_3: ::nl_item = 0x20002;
-        pub const ABDAY_4: ::nl_item = 0x20003;
-        pub const ABDAY_5: ::nl_item = 0x20004;
-        pub const ABDAY_6: ::nl_item = 0x20005;
-        pub const ABDAY_7: ::nl_item = 0x20006;
-
-        pub const DAY_1: ::nl_item = 0x20007;
-        pub const DAY_2: ::nl_item = 0x20008;
-        pub const DAY_3: ::nl_item = 0x20009;
-        pub const DAY_4: ::nl_item = 0x2000A;
-        pub const DAY_5: ::nl_item = 0x2000B;
-        pub const DAY_6: ::nl_item = 0x2000C;
-        pub const DAY_7: ::nl_item = 0x2000D;
-
-        pub const ABMON_1: ::nl_item = 0x2000E;
-        pub const ABMON_2: ::nl_item = 0x2000F;
-        pub const ABMON_3: ::nl_item = 0x20010;
-        pub const ABMON_4: ::nl_item = 0x20011;
-        pub const ABMON_5: ::nl_item = 0x20012;
-        pub const ABMON_6: ::nl_item = 0x20013;
-        pub const ABMON_7: ::nl_item = 0x20014;
-        pub const ABMON_8: ::nl_item = 0x20015;
-        pub const ABMON_9: ::nl_item = 0x20016;
-        pub const ABMON_10: ::nl_item = 0x20017;
-        pub const ABMON_11: ::nl_item = 0x20018;
-        pub const ABMON_12: ::nl_item = 0x20019;
-
-        pub const MON_1: ::nl_item = 0x2001A;
-        pub const MON_2: ::nl_item = 0x2001B;
-        pub const MON_3: ::nl_item = 0x2001C;
-        pub const MON_4: ::nl_item = 0x2001D;
-        pub const MON_5: ::nl_item = 0x2001E;
-        pub const MON_6: ::nl_item = 0x2001F;
-        pub const MON_7: ::nl_item = 0x20020;
-        pub const MON_8: ::nl_item = 0x20021;
-        pub const MON_9: ::nl_item = 0x20022;
-        pub const MON_10: ::nl_item = 0x20023;
-        pub const MON_11: ::nl_item = 0x20024;
-        pub const MON_12: ::nl_item = 0x20025;
-
-        pub const AM_STR: ::nl_item = 0x20026;
-        pub const PM_STR: ::nl_item = 0x20027;
-
-        pub const D_T_FMT: ::nl_item = 0x20028;
-        pub const D_FMT: ::nl_item = 0x20029;
-        pub const T_FMT: ::nl_item = 0x2002A;
-        pub const T_FMT_AMPM: ::nl_item = 0x2002B;
-
-        pub const ERA: ::nl_item = 0x2002C;
-        pub const ERA_D_FMT: ::nl_item = 0x2002E;
-        pub const ALT_DIGITS: ::nl_item = 0x2002F;
-        pub const ERA_D_T_FMT: ::nl_item = 0x20030;
-        pub const ERA_T_FMT: ::nl_item = 0x20031;
-
-        pub const CODESET: ::nl_item = 14;
-        pub const CRNCYSTR: ::nl_item = 0x4000F;
-        pub const RADIXCHAR: ::nl_item = 0x10000;
-        pub const THOUSEP: ::nl_item = 0x10001;
-        pub const YESEXPR: ::nl_item = 0x50000;
-        pub const NOEXPR: ::nl_item = 0x50001;
-        pub const YESSTR: ::nl_item = 0x50002;
-        pub const NOSTR: ::nl_item = 0x50003;
-    }
-}
-
-pub const RUSAGE_CHILDREN: ::c_int = -1;
-pub const L_tmpnam: ::c_uint = 20;
-pub const _PC_LINK_MAX: ::c_int = 0;
-pub const _PC_MAX_CANON: ::c_int = 1;
-pub const _PC_MAX_INPUT: ::c_int = 2;
-pub const _PC_NAME_MAX: ::c_int = 3;
-pub const _PC_PATH_MAX: ::c_int = 4;
-pub const _PC_PIPE_BUF: ::c_int = 5;
-pub const _PC_CHOWN_RESTRICTED: ::c_int = 6;
-pub const _PC_NO_TRUNC: ::c_int = 7;
-pub const _PC_VDISABLE: ::c_int = 8;
-pub const _PC_SYNC_IO: ::c_int = 9;
-pub const _PC_ASYNC_IO: ::c_int = 10;
-pub const _PC_PRIO_IO: ::c_int = 11;
-pub const _PC_SOCK_MAXBUF: ::c_int = 12;
-pub const _PC_FILESIZEBITS: ::c_int = 13;
-pub const _PC_REC_INCR_XFER_SIZE: ::c_int = 14;
-pub const _PC_REC_MAX_XFER_SIZE: ::c_int = 15;
-pub const _PC_REC_MIN_XFER_SIZE: ::c_int = 16;
-pub const _PC_REC_XFER_ALIGN: ::c_int = 17;
-pub const _PC_ALLOC_SIZE_MIN: ::c_int = 18;
-pub const _PC_SYMLINK_MAX: ::c_int = 19;
-pub const _PC_2_SYMLINKS: ::c_int = 20;
-
-pub const MS_NOUSER: ::c_ulong = 0xffffffff80000000;
-
-pub const _SC_ARG_MAX: ::c_int = 0;
-pub const _SC_CHILD_MAX: ::c_int = 1;
-pub const _SC_CLK_TCK: ::c_int = 2;
-pub const _SC_NGROUPS_MAX: ::c_int = 3;
-pub const _SC_OPEN_MAX: ::c_int = 4;
-pub const _SC_STREAM_MAX: ::c_int = 5;
-pub const _SC_TZNAME_MAX: ::c_int = 6;
-pub const _SC_JOB_CONTROL: ::c_int = 7;
-pub const _SC_SAVED_IDS: ::c_int = 8;
-pub const _SC_REALTIME_SIGNALS: ::c_int = 9;
-pub const _SC_PRIORITY_SCHEDULING: ::c_int = 10;
-pub const _SC_TIMERS: ::c_int = 11;
-pub const _SC_ASYNCHRONOUS_IO: ::c_int = 12;
-pub const _SC_PRIORITIZED_IO: ::c_int = 13;
-pub const _SC_SYNCHRONIZED_IO: ::c_int = 14;
-pub const _SC_FSYNC: ::c_int = 15;
-pub const _SC_MAPPED_FILES: ::c_int = 16;
-pub const _SC_MEMLOCK: ::c_int = 17;
-pub const _SC_MEMLOCK_RANGE: ::c_int = 18;
-pub const _SC_MEMORY_PROTECTION: ::c_int = 19;
-pub const _SC_MESSAGE_PASSING: ::c_int = 20;
-pub const _SC_SEMAPHORES: ::c_int = 21;
-pub const _SC_SHARED_MEMORY_OBJECTS: ::c_int = 22;
-pub const _SC_AIO_LISTIO_MAX: ::c_int = 23;
-pub const _SC_AIO_MAX: ::c_int = 24;
-pub const _SC_AIO_PRIO_DELTA_MAX: ::c_int = 25;
-pub const _SC_DELAYTIMER_MAX: ::c_int = 26;
-pub const _SC_MQ_OPEN_MAX: ::c_int = 27;
-pub const _SC_MQ_PRIO_MAX: ::c_int = 28;
-pub const _SC_VERSION: ::c_int = 29;
-pub const _SC_PAGESIZE: ::c_int = 30;
-pub const _SC_PAGE_SIZE: ::c_int = _SC_PAGESIZE;
-pub const _SC_RTSIG_MAX: ::c_int = 31;
-pub const _SC_SEM_NSEMS_MAX: ::c_int = 32;
-pub const _SC_SEM_VALUE_MAX: ::c_int = 33;
-pub const _SC_SIGQUEUE_MAX: ::c_int = 34;
-pub const _SC_TIMER_MAX: ::c_int = 35;
-pub const _SC_BC_BASE_MAX: ::c_int = 36;
-pub const _SC_BC_DIM_MAX: ::c_int = 37;
-pub const _SC_BC_SCALE_MAX: ::c_int = 38;
-pub const _SC_BC_STRING_MAX: ::c_int = 39;
-pub const _SC_COLL_WEIGHTS_MAX: ::c_int = 40;
-pub const _SC_EXPR_NEST_MAX: ::c_int = 42;
-pub const _SC_LINE_MAX: ::c_int = 43;
-pub const _SC_RE_DUP_MAX: ::c_int = 44;
-pub const _SC_2_VERSION: ::c_int = 46;
-pub const _SC_2_C_BIND: ::c_int = 47;
-pub const _SC_2_C_DEV: ::c_int = 48;
-pub const _SC_2_FORT_DEV: ::c_int = 49;
-pub const _SC_2_FORT_RUN: ::c_int = 50;
-pub const _SC_2_SW_DEV: ::c_int = 51;
-pub const _SC_2_LOCALEDEF: ::c_int = 52;
-pub const _SC_UIO_MAXIOV: ::c_int = 60;
-pub const _SC_IOV_MAX: ::c_int = 60;
-pub const _SC_THREADS: ::c_int = 67;
-pub const _SC_THREAD_SAFE_FUNCTIONS: ::c_int = 68;
-pub const _SC_GETGR_R_SIZE_MAX: ::c_int = 69;
-pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 70;
-pub const _SC_LOGIN_NAME_MAX: ::c_int = 71;
-pub const _SC_TTY_NAME_MAX: ::c_int = 72;
-pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: ::c_int = 73;
-pub const _SC_THREAD_KEYS_MAX: ::c_int = 74;
-pub const _SC_THREAD_STACK_MIN: ::c_int = 75;
-pub const _SC_THREAD_THREADS_MAX: ::c_int = 76;
-pub const _SC_THREAD_ATTR_STACKADDR: ::c_int = 77;
-pub const _SC_THREAD_ATTR_STACKSIZE: ::c_int = 78;
-pub const _SC_THREAD_PRIORITY_SCHEDULING: ::c_int = 79;
-pub const _SC_THREAD_PRIO_INHERIT: ::c_int = 80;
-pub const _SC_THREAD_PRIO_PROTECT: ::c_int = 81;
-pub const _SC_THREAD_PROCESS_SHARED: ::c_int = 82;
-pub const _SC_NPROCESSORS_CONF: ::c_int = 83;
-pub const _SC_NPROCESSORS_ONLN: ::c_int = 84;
-pub const _SC_PHYS_PAGES: ::c_int = 85;
-pub const _SC_AVPHYS_PAGES: ::c_int = 86;
-pub const _SC_ATEXIT_MAX: ::c_int = 87;
-pub const _SC_PASS_MAX: ::c_int = 88;
-pub const _SC_XOPEN_VERSION: ::c_int = 89;
-pub const _SC_XOPEN_XCU_VERSION: ::c_int = 90;
-pub const _SC_XOPEN_UNIX: ::c_int = 91;
-pub const _SC_XOPEN_CRYPT: ::c_int = 92;
-pub const _SC_XOPEN_ENH_I18N: ::c_int = 93;
-pub const _SC_XOPEN_SHM: ::c_int = 94;
-pub const _SC_2_CHAR_TERM: ::c_int = 95;
-pub const _SC_2_UPE: ::c_int = 97;
-pub const _SC_XOPEN_XPG2: ::c_int = 98;
-pub const _SC_XOPEN_XPG3: ::c_int = 99;
-pub const _SC_XOPEN_XPG4: ::c_int = 100;
-pub const _SC_NZERO: ::c_int = 109;
-pub const _SC_XBS5_ILP32_OFF32: ::c_int = 125;
-pub const _SC_XBS5_ILP32_OFFBIG: ::c_int = 126;
-pub const _SC_XBS5_LP64_OFF64: ::c_int = 127;
-pub const _SC_XBS5_LPBIG_OFFBIG: ::c_int = 128;
-pub const _SC_XOPEN_LEGACY: ::c_int = 129;
-pub const _SC_XOPEN_REALTIME: ::c_int = 130;
-pub const _SC_XOPEN_REALTIME_THREADS: ::c_int = 131;
-pub const _SC_ADVISORY_INFO: ::c_int = 132;
-pub const _SC_BARRIERS: ::c_int = 133;
-pub const _SC_CLOCK_SELECTION: ::c_int = 137;
-pub const _SC_CPUTIME: ::c_int = 138;
-pub const _SC_THREAD_CPUTIME: ::c_int = 139;
-pub const _SC_MONOTONIC_CLOCK: ::c_int = 149;
-pub const _SC_READER_WRITER_LOCKS: ::c_int = 153;
-pub const _SC_SPIN_LOCKS: ::c_int = 154;
-pub const _SC_REGEXP: ::c_int = 155;
-pub const _SC_SHELL: ::c_int = 157;
-pub const _SC_SPAWN: ::c_int = 159;
-pub const _SC_SPORADIC_SERVER: ::c_int = 160;
-pub const _SC_THREAD_SPORADIC_SERVER: ::c_int = 161;
-pub const _SC_TIMEOUTS: ::c_int = 164;
-pub const _SC_TYPED_MEMORY_OBJECTS: ::c_int = 165;
-pub const _SC_2_PBS: ::c_int = 168;
-pub const _SC_2_PBS_ACCOUNTING: ::c_int = 169;
-pub const _SC_2_PBS_LOCATE: ::c_int = 170;
-pub const _SC_2_PBS_MESSAGE: ::c_int = 171;
-pub const _SC_2_PBS_TRACK: ::c_int = 172;
-pub const _SC_SYMLOOP_MAX: ::c_int = 173;
-pub const _SC_STREAMS: ::c_int = 174;
-pub const _SC_2_PBS_CHECKPOINT: ::c_int = 175;
-pub const _SC_V6_ILP32_OFF32: ::c_int = 176;
-pub const _SC_V6_ILP32_OFFBIG: ::c_int = 177;
-pub const _SC_V6_LP64_OFF64: ::c_int = 178;
-pub const _SC_V6_LPBIG_OFFBIG: ::c_int = 179;
-pub const _SC_HOST_NAME_MAX: ::c_int = 180;
-pub const _SC_TRACE: ::c_int = 181;
-pub const _SC_TRACE_EVENT_FILTER: ::c_int = 182;
-pub const _SC_TRACE_INHERIT: ::c_int = 183;
-pub const _SC_TRACE_LOG: ::c_int = 184;
-pub const _SC_IPV6: ::c_int = 235;
-pub const _SC_RAW_SOCKETS: ::c_int = 236;
-pub const _SC_V7_ILP32_OFF32: ::c_int = 237;
-pub const _SC_V7_ILP32_OFFBIG: ::c_int = 238;
-pub const _SC_V7_LP64_OFF64: ::c_int = 239;
-pub const _SC_V7_LPBIG_OFFBIG: ::c_int = 240;
-pub const _SC_SS_REPL_MAX: ::c_int = 241;
-pub const _SC_TRACE_EVENT_NAME_MAX: ::c_int = 242;
-pub const _SC_TRACE_NAME_MAX: ::c_int = 243;
-pub const _SC_TRACE_SYS_MAX: ::c_int = 244;
-pub const _SC_TRACE_USER_EVENT_MAX: ::c_int = 245;
-pub const _SC_XOPEN_STREAMS: ::c_int = 246;
-pub const _SC_THREAD_ROBUST_PRIO_INHERIT: ::c_int = 247;
-pub const _SC_THREAD_ROBUST_PRIO_PROTECT: ::c_int = 248;
-
-pub const RLIM_SAVED_MAX: ::rlim_t = RLIM_INFINITY;
-pub const RLIM_SAVED_CUR: ::rlim_t = RLIM_INFINITY;
-
-// elf.h - Fields in the e_ident array.
-pub const EI_NIDENT: usize = 16;
-
-pub const EI_MAG0: usize = 0;
-pub const ELFMAG0: u8 = 0x7f;
-pub const EI_MAG1: usize = 1;
-pub const ELFMAG1: u8 = b'E';
-pub const EI_MAG2: usize = 2;
-pub const ELFMAG2: u8 = b'L';
-pub const EI_MAG3: usize = 3;
-pub const ELFMAG3: u8 = b'F';
-pub const SELFMAG: usize = 4;
-
-pub const EI_CLASS: usize = 4;
-pub const ELFCLASSNONE: u8 = 0;
-pub const ELFCLASS32: u8 = 1;
-pub const ELFCLASS64: u8 = 2;
-pub const ELFCLASSNUM: usize = 3;
-
-pub const EI_DATA: usize = 5;
-pub const ELFDATANONE: u8 = 0;
-pub const ELFDATA2LSB: u8 = 1;
-pub const ELFDATA2MSB: u8 = 2;
-pub const ELFDATANUM: usize = 3;
-
-pub const EI_VERSION: usize = 6;
-
-pub const EI_OSABI: usize = 7;
-pub const ELFOSABI_NONE: u8 = 0;
-pub const ELFOSABI_SYSV: u8 = 0;
-pub const ELFOSABI_HPUX: u8 = 1;
-pub const ELFOSABI_NETBSD: u8 = 2;
-pub const ELFOSABI_GNU: u8 = 3;
-pub const ELFOSABI_LINUX: u8 = ELFOSABI_GNU;
-pub const ELFOSABI_SOLARIS: u8 = 6;
-pub const ELFOSABI_AIX: u8 = 7;
-pub const ELFOSABI_IRIX: u8 = 8;
-pub const ELFOSABI_FREEBSD: u8 = 9;
-pub const ELFOSABI_TRU64: u8 = 10;
-pub const ELFOSABI_MODESTO: u8 = 11;
-pub const ELFOSABI_OPENBSD: u8 = 12;
-pub const ELFOSABI_ARM: u8 = 97;
-pub const ELFOSABI_STANDALONE: u8 = 255;
-
-pub const EI_ABIVERSION: usize = 8;
-
-pub const EI_PAD: usize = 9;
-
-// elf.h - Legal values for e_type (object file type).
-pub const ET_NONE: u16 = 0;
-pub const ET_REL: u16 = 1;
-pub const ET_EXEC: u16 = 2;
-pub const ET_DYN: u16 = 3;
-pub const ET_CORE: u16 = 4;
-pub const ET_NUM: u16 = 5;
-pub const ET_LOOS: u16 = 0xfe00;
-pub const ET_HIOS: u16 = 0xfeff;
-pub const ET_LOPROC: u16 = 0xff00;
-pub const ET_HIPROC: u16 = 0xffff;
-
-// elf.h - Legal values for e_machine (architecture).
-pub const EM_NONE: u16 = 0;
-pub const EM_M32: u16 = 1;
-pub const EM_SPARC: u16 = 2;
-pub const EM_386: u16 = 3;
-pub const EM_68K: u16 = 4;
-pub const EM_88K: u16 = 5;
-pub const EM_860: u16 = 7;
-pub const EM_MIPS: u16 = 8;
-pub const EM_S370: u16 = 9;
-pub const EM_MIPS_RS3_LE: u16 = 10;
-pub const EM_PARISC: u16 = 15;
-pub const EM_VPP500: u16 = 17;
-pub const EM_SPARC32PLUS: u16 = 18;
-pub const EM_960: u16 = 19;
-pub const EM_PPC: u16 = 20;
-pub const EM_PPC64: u16 = 21;
-pub const EM_S390: u16 = 22;
-pub const EM_V800: u16 = 36;
-pub const EM_FR20: u16 = 37;
-pub const EM_RH32: u16 = 38;
-pub const EM_RCE: u16 = 39;
-pub const EM_ARM: u16 = 40;
-pub const EM_FAKE_ALPHA: u16 = 41;
-pub const EM_SH: u16 = 42;
-pub const EM_SPARCV9: u16 = 43;
-pub const EM_TRICORE: u16 = 44;
-pub const EM_ARC: u16 = 45;
-pub const EM_H8_300: u16 = 46;
-pub const EM_H8_300H: u16 = 47;
-pub const EM_H8S: u16 = 48;
-pub const EM_H8_500: u16 = 49;
-pub const EM_IA_64: u16 = 50;
-pub const EM_MIPS_X: u16 = 51;
-pub const EM_COLDFIRE: u16 = 52;
-pub const EM_68HC12: u16 = 53;
-pub const EM_MMA: u16 = 54;
-pub const EM_PCP: u16 = 55;
-pub const EM_NCPU: u16 = 56;
-pub const EM_NDR1: u16 = 57;
-pub const EM_STARCORE: u16 = 58;
-pub const EM_ME16: u16 = 59;
-pub const EM_ST100: u16 = 60;
-pub const EM_TINYJ: u16 = 61;
-pub const EM_X86_64: u16 = 62;
-pub const EM_PDSP: u16 = 63;
-pub const EM_FX66: u16 = 66;
-pub const EM_ST9PLUS: u16 = 67;
-pub const EM_ST7: u16 = 68;
-pub const EM_68HC16: u16 = 69;
-pub const EM_68HC11: u16 = 70;
-pub const EM_68HC08: u16 = 71;
-pub const EM_68HC05: u16 = 72;
-pub const EM_SVX: u16 = 73;
-pub const EM_ST19: u16 = 74;
-pub const EM_VAX: u16 = 75;
-pub const EM_CRIS: u16 = 76;
-pub const EM_JAVELIN: u16 = 77;
-pub const EM_FIREPATH: u16 = 78;
-pub const EM_ZSP: u16 = 79;
-pub const EM_MMIX: u16 = 80;
-pub const EM_HUANY: u16 = 81;
-pub const EM_PRISM: u16 = 82;
-pub const EM_AVR: u16 = 83;
-pub const EM_FR30: u16 = 84;
-pub const EM_D10V: u16 = 85;
-pub const EM_D30V: u16 = 86;
-pub const EM_V850: u16 = 87;
-pub const EM_M32R: u16 = 88;
-pub const EM_MN10300: u16 = 89;
-pub const EM_MN10200: u16 = 90;
-pub const EM_PJ: u16 = 91;
-pub const EM_OPENRISC: u16 = 92;
-pub const EM_ARC_A5: u16 = 93;
-pub const EM_XTENSA: u16 = 94;
-pub const EM_AARCH64: u16 = 183;
-pub const EM_TILEPRO: u16 = 188;
-pub const EM_TILEGX: u16 = 191;
-pub const EM_ALPHA: u16 = 0x9026;
-
-// elf.h - Legal values for e_version (version).
-pub const EV_NONE: u32 = 0;
-pub const EV_CURRENT: u32 = 1;
-pub const EV_NUM: u32 = 2;
-
-// elf.h - Legal values for p_type (segment type).
-pub const PT_NULL: u32 = 0;
-pub const PT_LOAD: u32 = 1;
-pub const PT_DYNAMIC: u32 = 2;
-pub const PT_INTERP: u32 = 3;
-pub const PT_NOTE: u32 = 4;
-pub const PT_SHLIB: u32 = 5;
-pub const PT_PHDR: u32 = 6;
-pub const PT_TLS: u32 = 7;
-pub const PT_NUM: u32 = 8;
-pub const PT_LOOS: u32 = 0x60000000;
-pub const PT_GNU_EH_FRAME: u32 = 0x6474e550;
-pub const PT_GNU_STACK: u32 = 0x6474e551;
-pub const PT_GNU_RELRO: u32 = 0x6474e552;
-pub const PT_LOSUNW: u32 = 0x6ffffffa;
-pub const PT_SUNWBSS: u32 = 0x6ffffffa;
-pub const PT_SUNWSTACK: u32 = 0x6ffffffb;
-pub const PT_HISUNW: u32 = 0x6fffffff;
-pub const PT_HIOS: u32 = 0x6fffffff;
-pub const PT_LOPROC: u32 = 0x70000000;
-pub const PT_HIPROC: u32 = 0x7fffffff;
-
-// Legal values for p_flags (segment flags).
-pub const PF_X: u32 = 1 << 0;
-pub const PF_W: u32 = 1 << 1;
-pub const PF_R: u32 = 1 << 2;
-pub const PF_MASKOS: u32 = 0x0ff00000;
-pub const PF_MASKPROC: u32 = 0xf0000000;
-
-// elf.h - Legal values for a_type (entry type).
-pub const AT_NULL: ::c_ulong = 0;
-pub const AT_IGNORE: ::c_ulong = 1;
-pub const AT_EXECFD: ::c_ulong = 2;
-pub const AT_PHDR: ::c_ulong = 3;
-pub const AT_PHENT: ::c_ulong = 4;
-pub const AT_PHNUM: ::c_ulong = 5;
-pub const AT_PAGESZ: ::c_ulong = 6;
-pub const AT_BASE: ::c_ulong = 7;
-pub const AT_FLAGS: ::c_ulong = 8;
-pub const AT_ENTRY: ::c_ulong = 9;
-pub const AT_NOTELF: ::c_ulong = 10;
-pub const AT_UID: ::c_ulong = 11;
-pub const AT_EUID: ::c_ulong = 12;
-pub const AT_GID: ::c_ulong = 13;
-pub const AT_EGID: ::c_ulong = 14;
-pub const AT_PLATFORM: ::c_ulong = 15;
-pub const AT_HWCAP: ::c_ulong = 16;
-pub const AT_CLKTCK: ::c_ulong = 17;
-
-pub const AT_SECURE: ::c_ulong = 23;
-pub const AT_BASE_PLATFORM: ::c_ulong = 24;
-pub const AT_RANDOM: ::c_ulong = 25;
-pub const AT_HWCAP2: ::c_ulong = 26;
-
-pub const AT_EXECFN: ::c_ulong = 31;
-
-pub const GLOB_ERR: ::c_int = 1 << 0;
-pub const GLOB_MARK: ::c_int = 1 << 1;
-pub const GLOB_NOSORT: ::c_int = 1 << 2;
-pub const GLOB_DOOFFS: ::c_int = 1 << 3;
-pub const GLOB_NOCHECK: ::c_int = 1 << 4;
-pub const GLOB_APPEND: ::c_int = 1 << 5;
-pub const GLOB_NOESCAPE: ::c_int = 1 << 6;
-
-pub const GLOB_NOSPACE: ::c_int = 1;
-pub const GLOB_ABORTED: ::c_int = 2;
-pub const GLOB_NOMATCH: ::c_int = 3;
-
-pub const POSIX_MADV_NORMAL: ::c_int = 0;
-pub const POSIX_MADV_RANDOM: ::c_int = 1;
-pub const POSIX_MADV_SEQUENTIAL: ::c_int = 2;
-pub const POSIX_MADV_WILLNEED: ::c_int = 3;
-pub const POSIX_SPAWN_USEVFORK: ::c_int = 64;
-pub const POSIX_SPAWN_SETSID: ::c_int = 128;
-
-pub const S_IEXEC: mode_t = 64;
-pub const S_IWRITE: mode_t = 128;
-pub const S_IREAD: mode_t = 256;
-
-pub const F_LOCK: ::c_int = 1;
-pub const F_TEST: ::c_int = 3;
-pub const F_TLOCK: ::c_int = 2;
-pub const F_ULOCK: ::c_int = 0;
-
-pub const F_SEAL_FUTURE_WRITE: ::c_int = 0x0010;
-
-pub const IFF_LOWER_UP: ::c_int = 0x10000;
-pub const IFF_DORMANT: ::c_int = 0x20000;
-pub const IFF_ECHO: ::c_int = 0x40000;
-
-// linux/if_addr.h
-pub const IFA_UNSPEC: ::c_ushort = 0;
-pub const IFA_ADDRESS: ::c_ushort = 1;
-pub const IFA_LOCAL: ::c_ushort = 2;
-pub const IFA_LABEL: ::c_ushort = 3;
-pub const IFA_BROADCAST: ::c_ushort = 4;
-pub const IFA_ANYCAST: ::c_ushort = 5;
-pub const IFA_CACHEINFO: ::c_ushort = 6;
-pub const IFA_MULTICAST: ::c_ushort = 7;
-
-pub const IFA_F_SECONDARY: u32 = 0x01;
-pub const IFA_F_TEMPORARY: u32 = 0x01;
-pub const IFA_F_NODAD: u32 = 0x02;
-pub const IFA_F_OPTIMISTIC: u32 = 0x04;
-pub const IFA_F_DADFAILED: u32 = 0x08;
-pub const IFA_F_HOMEADDRESS: u32 = 0x10;
-pub const IFA_F_DEPRECATED: u32 = 0x20;
-pub const IFA_F_TENTATIVE: u32 = 0x40;
-pub const IFA_F_PERMANENT: u32 = 0x80;
-
-// linux/if_link.h
-pub const IFLA_UNSPEC: ::c_ushort = 0;
-pub const IFLA_ADDRESS: ::c_ushort = 1;
-pub const IFLA_BROADCAST: ::c_ushort = 2;
-pub const IFLA_IFNAME: ::c_ushort = 3;
-pub const IFLA_MTU: ::c_ushort = 4;
-pub const IFLA_LINK: ::c_ushort = 5;
-pub const IFLA_QDISC: ::c_ushort = 6;
-pub const IFLA_STATS: ::c_ushort = 7;
-pub const IFLA_COST: ::c_ushort = 8;
-pub const IFLA_PRIORITY: ::c_ushort = 9;
-pub const IFLA_MASTER: ::c_ushort = 10;
-pub const IFLA_WIRELESS: ::c_ushort = 11;
-pub const IFLA_PROTINFO: ::c_ushort = 12;
-pub const IFLA_TXQLEN: ::c_ushort = 13;
-pub const IFLA_MAP: ::c_ushort = 14;
-pub const IFLA_WEIGHT: ::c_ushort = 15;
-pub const IFLA_OPERSTATE: ::c_ushort = 16;
-pub const IFLA_LINKMODE: ::c_ushort = 17;
-pub const IFLA_LINKINFO: ::c_ushort = 18;
-pub const IFLA_NET_NS_PID: ::c_ushort = 19;
-pub const IFLA_IFALIAS: ::c_ushort = 20;
-pub const IFLA_NUM_VF: ::c_ushort = 21;
-pub const IFLA_VFINFO_LIST: ::c_ushort = 22;
-pub const IFLA_STATS64: ::c_ushort = 23;
-pub const IFLA_VF_PORTS: ::c_ushort = 24;
-pub const IFLA_PORT_SELF: ::c_ushort = 25;
-pub const IFLA_AF_SPEC: ::c_ushort = 26;
-pub const IFLA_GROUP: ::c_ushort = 27;
-pub const IFLA_NET_NS_FD: ::c_ushort = 28;
-pub const IFLA_EXT_MASK: ::c_ushort = 29;
-pub const IFLA_PROMISCUITY: ::c_ushort = 30;
-pub const IFLA_NUM_TX_QUEUES: ::c_ushort = 31;
-pub const IFLA_NUM_RX_QUEUES: ::c_ushort = 32;
-pub const IFLA_CARRIER: ::c_ushort = 33;
-pub const IFLA_PHYS_PORT_ID: ::c_ushort = 34;
-pub const IFLA_CARRIER_CHANGES: ::c_ushort = 35;
-pub const IFLA_PHYS_SWITCH_ID: ::c_ushort = 36;
-pub const IFLA_LINK_NETNSID: ::c_ushort = 37;
-pub const IFLA_PHYS_PORT_NAME: ::c_ushort = 38;
-pub const IFLA_PROTO_DOWN: ::c_ushort = 39;
-pub const IFLA_GSO_MAX_SEGS: ::c_ushort = 40;
-pub const IFLA_GSO_MAX_SIZE: ::c_ushort = 41;
-pub const IFLA_PAD: ::c_ushort = 42;
-pub const IFLA_XDP: ::c_ushort = 43;
-pub const IFLA_EVENT: ::c_ushort = 44;
-pub const IFLA_NEW_NETNSID: ::c_ushort = 45;
-pub const IFLA_IF_NETNSID: ::c_ushort = 46;
-pub const IFLA_TARGET_NETNSID: ::c_ushort = IFLA_IF_NETNSID;
-pub const IFLA_CARRIER_UP_COUNT: ::c_ushort = 47;
-pub const IFLA_CARRIER_DOWN_COUNT: ::c_ushort = 48;
-pub const IFLA_NEW_IFINDEX: ::c_ushort = 49;
-pub const IFLA_MIN_MTU: ::c_ushort = 50;
-pub const IFLA_MAX_MTU: ::c_ushort = 51;
-pub const IFLA_PROP_LIST: ::c_ushort = 52;
-pub const IFLA_ALT_IFNAME: ::c_ushort = 53;
-pub const IFLA_PERM_ADDRESS: ::c_ushort = 54;
-pub const IFLA_PROTO_DOWN_REASON: ::c_ushort = 55;
-
-pub const IFLA_INFO_UNSPEC: ::c_ushort = 0;
-pub const IFLA_INFO_KIND: ::c_ushort = 1;
-pub const IFLA_INFO_DATA: ::c_ushort = 2;
-pub const IFLA_INFO_XSTATS: ::c_ushort = 3;
-pub const IFLA_INFO_SLAVE_KIND: ::c_ushort = 4;
-pub const IFLA_INFO_SLAVE_DATA: ::c_ushort = 5;
-
-// linux/if_tun.h
-pub const IFF_TUN: ::c_int = 0x0001;
-pub const IFF_TAP: ::c_int = 0x0002;
-pub const IFF_NO_PI: ::c_int = 0x1000;
-// Read queue size
-pub const TUN_READQ_SIZE: ::c_short = 500;
-// TUN device type flags: deprecated. Use IFF_TUN/IFF_TAP instead.
-pub const TUN_TUN_DEV: ::c_short = ::IFF_TUN as ::c_short;
-pub const TUN_TAP_DEV: ::c_short = ::IFF_TAP as ::c_short;
-pub const TUN_TYPE_MASK: ::c_short = 0x000f;
-// This flag has no real effect
-pub const IFF_ONE_QUEUE: ::c_int = 0x2000;
-pub const IFF_VNET_HDR: ::c_int = 0x4000;
-pub const IFF_TUN_EXCL: ::c_int = 0x8000;
-pub const IFF_MULTI_QUEUE: ::c_int = 0x0100;
-pub const IFF_ATTACH_QUEUE: ::c_int = 0x0200;
-pub const IFF_DETACH_QUEUE: ::c_int = 0x0400;
-// read-only flag
-pub const IFF_PERSIST: ::c_int = 0x0800;
-pub const IFF_NOFILTER: ::c_int = 0x1000;
-
-// Since Linux 3.1
-pub const SEEK_DATA: ::c_int = 3;
-pub const SEEK_HOLE: ::c_int = 4;
-
-pub const ST_RDONLY: ::c_ulong = 1;
-pub const ST_NOSUID: ::c_ulong = 2;
-pub const ST_NODEV: ::c_ulong = 4;
-pub const ST_NOEXEC: ::c_ulong = 8;
-pub const ST_SYNCHRONOUS: ::c_ulong = 16;
-pub const ST_MANDLOCK: ::c_ulong = 64;
-pub const ST_WRITE: ::c_ulong = 128;
-pub const ST_APPEND: ::c_ulong = 256;
-pub const ST_IMMUTABLE: ::c_ulong = 512;
-pub const ST_NOATIME: ::c_ulong = 1024;
-pub const ST_NODIRATIME: ::c_ulong = 2048;
-
-pub const RTLD_NEXT: *mut ::c_void = -1i64 as *mut ::c_void;
-pub const RTLD_DEFAULT: *mut ::c_void = 0i64 as *mut ::c_void;
-pub const RTLD_NODELETE: ::c_int = 0x1000;
-pub const RTLD_NOW: ::c_int = 0x2;
-
-pub const AT_EACCESS: ::c_int = 0x200;
-
-// linux/mempolicy.h
-pub const MPOL_DEFAULT: ::c_int = 0;
-pub const MPOL_PREFERRED: ::c_int = 1;
-pub const MPOL_BIND: ::c_int = 2;
-pub const MPOL_INTERLEAVE: ::c_int = 3;
-pub const MPOL_LOCAL: ::c_int = 4;
-pub const MPOL_F_NUMA_BALANCING: ::c_int = 1 << 13;
-pub const MPOL_F_RELATIVE_NODES: ::c_int = 1 << 14;
-pub const MPOL_F_STATIC_NODES: ::c_int = 1 << 15;
-
-align_const! {
-    pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t {
-        size: [0; __SIZEOF_PTHREAD_MUTEX_T],
-    };
-    pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t {
-        size: [0; __SIZEOF_PTHREAD_COND_T],
-    };
-    pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t {
-        size: [0; __SIZEOF_PTHREAD_RWLOCK_T],
-    };
-}
-pub const PTHREAD_MUTEX_NORMAL: ::c_int = 0;
-pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 1;
-pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 2;
-pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_NORMAL;
-pub const PTHREAD_MUTEX_STALLED: ::c_int = 0;
-pub const PTHREAD_MUTEX_ROBUST: ::c_int = 1;
-pub const PTHREAD_PRIO_NONE: ::c_int = 0;
-pub const PTHREAD_PRIO_INHERIT: ::c_int = 1;
-pub const PTHREAD_PRIO_PROTECT: ::c_int = 2;
-pub const PTHREAD_PROCESS_PRIVATE: ::c_int = 0;
-pub const PTHREAD_PROCESS_SHARED: ::c_int = 1;
-pub const __SIZEOF_PTHREAD_COND_T: usize = 48;
-
-pub const RENAME_NOREPLACE: ::c_uint = 1;
-pub const RENAME_EXCHANGE: ::c_uint = 2;
-pub const RENAME_WHITEOUT: ::c_uint = 4;
-
-pub const SCHED_OTHER: ::c_int = 0;
-pub const SCHED_FIFO: ::c_int = 1;
-pub const SCHED_RR: ::c_int = 2;
-pub const SCHED_BATCH: ::c_int = 3;
-pub const SCHED_IDLE: ::c_int = 5;
-
-pub const SCHED_RESET_ON_FORK: ::c_int = 0x40000000;
-
-pub const CLONE_PIDFD: ::c_int = 0x1000;
-
-// netinet/in.h
-// NOTE: These are in addition to the constants defined in src/unix/mod.rs
-
-/// Multipath TCP
-pub const IPPROTO_MPTCP: ::c_int = 262;
-#[deprecated(
-    since = "0.2.80",
-    note = "This value was increased in the newer kernel \
-            and we'll change this following upstream in the future release. \
-            See #1896 for more info."
-)]
-pub const IPPROTO_MAX: ::c_int = 256;
-
-// System V IPC
-pub const IPC_PRIVATE: ::key_t = 0;
-
-pub const IPC_CREAT: ::c_int = 0o1000;
-pub const IPC_EXCL: ::c_int = 0o2000;
-pub const IPC_NOWAIT: ::c_int = 0o4000;
-
-pub const IPC_RMID: ::c_int = 0;
-pub const IPC_SET: ::c_int = 1;
-pub const IPC_STAT: ::c_int = 2;
-pub const IPC_INFO: ::c_int = 3;
-pub const MSG_STAT: ::c_int = 11;
-pub const MSG_INFO: ::c_int = 12;
-
-pub const MSG_NOERROR: ::c_int = 0o10000;
-pub const MSG_EXCEPT: ::c_int = 0o20000;
-pub const MSG_ZEROCOPY: ::c_int = 0x4000000;
-
-pub const SHM_R: ::c_int = 0o400;
-pub const SHM_W: ::c_int = 0o200;
-
-pub const SHM_RDONLY: ::c_int = 0o10000;
-pub const SHM_RND: ::c_int = 0o20000;
-pub const SHM_REMAP: ::c_int = 0o40000;
-
-pub const SHM_LOCK: ::c_int = 11;
-pub const SHM_UNLOCK: ::c_int = 12;
-
-pub const SHM_HUGETLB: ::c_int = 0o4000;
-#[cfg(not(all(target_env = "uclibc", target_arch = "mips")))]
-pub const SHM_NORESERVE: ::c_int = 0o10000;
-
-pub const QFMT_VFS_OLD: ::c_int = 1;
-pub const QFMT_VFS_V0: ::c_int = 2;
-pub const QFMT_VFS_V1: ::c_int = 4;
-
-pub const EFD_SEMAPHORE: ::c_int = 0x1;
-
-pub const LOG_NFACILITIES: ::c_int = 24;
-
-pub const SEM_FAILED: *mut ::sem_t = 0 as *mut sem_t;
-
-pub const RB_AUTOBOOT: ::c_int = 0x01234567u32 as i32;
-pub const RB_HALT_SYSTEM: ::c_int = 0xcdef0123u32 as i32;
-pub const RB_ENABLE_CAD: ::c_int = 0x89abcdefu32 as i32;
-pub const RB_DISABLE_CAD: ::c_int = 0x00000000u32 as i32;
-pub const RB_POWER_OFF: ::c_int = 0x4321fedcu32 as i32;
-pub const RB_SW_SUSPEND: ::c_int = 0xd000fce2u32 as i32;
-pub const RB_KEXEC: ::c_int = 0x45584543u32 as i32;
-
-pub const AI_PASSIVE: ::c_int = 0x0001;
-pub const AI_CANONNAME: ::c_int = 0x0002;
-pub const AI_NUMERICHOST: ::c_int = 0x0004;
-pub const AI_V4MAPPED: ::c_int = 0x0008;
-pub const AI_ALL: ::c_int = 0x0010;
-pub const AI_ADDRCONFIG: ::c_int = 0x0020;
-
-pub const AI_NUMERICSERV: ::c_int = 0x0400;
-
-pub const EAI_BADFLAGS: ::c_int = -1;
-pub const EAI_NONAME: ::c_int = -2;
-pub const EAI_AGAIN: ::c_int = -3;
-pub const EAI_FAIL: ::c_int = -4;
-pub const EAI_NODATA: ::c_int = -5;
-pub const EAI_FAMILY: ::c_int = -6;
-pub const EAI_SOCKTYPE: ::c_int = -7;
-pub const EAI_SERVICE: ::c_int = -8;
-pub const EAI_MEMORY: ::c_int = -10;
-pub const EAI_SYSTEM: ::c_int = -11;
-pub const EAI_OVERFLOW: ::c_int = -12;
-
-pub const NI_NUMERICHOST: ::c_int = 1;
-pub const NI_NUMERICSERV: ::c_int = 2;
-pub const NI_NOFQDN: ::c_int = 4;
-pub const NI_NAMEREQD: ::c_int = 8;
-pub const NI_DGRAM: ::c_int = 16;
-
-pub const SYNC_FILE_RANGE_WAIT_BEFORE: ::c_uint = 1;
-pub const SYNC_FILE_RANGE_WRITE: ::c_uint = 2;
-pub const SYNC_FILE_RANGE_WAIT_AFTER: ::c_uint = 4;
-
-cfg_if! {
-    if #[cfg(not(target_env = "uclibc"))] {
-        pub const AIO_CANCELED: ::c_int = 0;
-        pub const AIO_NOTCANCELED: ::c_int = 1;
-        pub const AIO_ALLDONE: ::c_int = 2;
-        pub const LIO_READ: ::c_int = 0;
-        pub const LIO_WRITE: ::c_int = 1;
-        pub const LIO_NOP: ::c_int = 2;
-        pub const LIO_WAIT: ::c_int = 0;
-        pub const LIO_NOWAIT: ::c_int = 1;
-        pub const RUSAGE_THREAD: ::c_int = 1;
-        pub const MSG_COPY: ::c_int = 0o40000;
-        pub const SHM_EXEC: ::c_int = 0o100000;
-        pub const IPV6_MULTICAST_ALL: ::c_int = 29;
-        pub const IPV6_ROUTER_ALERT_ISOLATE: ::c_int = 30;
-        pub const PACKET_MR_UNICAST: ::c_int = 3;
-        pub const PTRACE_EVENT_STOP: ::c_int = 128;
-        pub const UDP_SEGMENT: ::c_int = 103;
-        pub const UDP_GRO: ::c_int = 104;
-    }
-}
-
-pub const MREMAP_MAYMOVE: ::c_int = 1;
-pub const MREMAP_FIXED: ::c_int = 2;
-pub const MREMAP_DONTUNMAP: ::c_int = 4;
-
-pub const PR_SET_PDEATHSIG: ::c_int = 1;
-pub const PR_GET_PDEATHSIG: ::c_int = 2;
-
-pub const PR_GET_DUMPABLE: ::c_int = 3;
-pub const PR_SET_DUMPABLE: ::c_int = 4;
-
-pub const PR_GET_UNALIGN: ::c_int = 5;
-pub const PR_SET_UNALIGN: ::c_int = 6;
-pub const PR_UNALIGN_NOPRINT: ::c_int = 1;
-pub const PR_UNALIGN_SIGBUS: ::c_int = 2;
-
-pub const PR_GET_KEEPCAPS: ::c_int = 7;
-pub const PR_SET_KEEPCAPS: ::c_int = 8;
-
-pub const PR_GET_FPEMU: ::c_int = 9;
-pub const PR_SET_FPEMU: ::c_int = 10;
-pub const PR_FPEMU_NOPRINT: ::c_int = 1;
-pub const PR_FPEMU_SIGFPE: ::c_int = 2;
-
-pub const PR_GET_FPEXC: ::c_int = 11;
-pub const PR_SET_FPEXC: ::c_int = 12;
-pub const PR_FP_EXC_SW_ENABLE: ::c_int = 0x80;
-pub const PR_FP_EXC_DIV: ::c_int = 0x010000;
-pub const PR_FP_EXC_OVF: ::c_int = 0x020000;
-pub const PR_FP_EXC_UND: ::c_int = 0x040000;
-pub const PR_FP_EXC_RES: ::c_int = 0x080000;
-pub const PR_FP_EXC_INV: ::c_int = 0x100000;
-pub const PR_FP_EXC_DISABLED: ::c_int = 0;
-pub const PR_FP_EXC_NONRECOV: ::c_int = 1;
-pub const PR_FP_EXC_ASYNC: ::c_int = 2;
-pub const PR_FP_EXC_PRECISE: ::c_int = 3;
-
-pub const PR_GET_TIMING: ::c_int = 13;
-pub const PR_SET_TIMING: ::c_int = 14;
-pub const PR_TIMING_STATISTICAL: ::c_int = 0;
-pub const PR_TIMING_TIMESTAMP: ::c_int = 1;
-
-pub const PR_SET_NAME: ::c_int = 15;
-pub const PR_GET_NAME: ::c_int = 16;
-
-pub const PR_GET_ENDIAN: ::c_int = 19;
-pub const PR_SET_ENDIAN: ::c_int = 20;
-pub const PR_ENDIAN_BIG: ::c_int = 0;
-pub const PR_ENDIAN_LITTLE: ::c_int = 1;
-pub const PR_ENDIAN_PPC_LITTLE: ::c_int = 2;
-
-pub const PR_GET_SECCOMP: ::c_int = 21;
-pub const PR_SET_SECCOMP: ::c_int = 22;
-
-pub const PR_CAPBSET_READ: ::c_int = 23;
-pub const PR_CAPBSET_DROP: ::c_int = 24;
-
-pub const PR_GET_TSC: ::c_int = 25;
-pub const PR_SET_TSC: ::c_int = 26;
-pub const PR_TSC_ENABLE: ::c_int = 1;
-pub const PR_TSC_SIGSEGV: ::c_int = 2;
-
-pub const PR_GET_SECUREBITS: ::c_int = 27;
-pub const PR_SET_SECUREBITS: ::c_int = 28;
-
-pub const PR_SET_TIMERSLACK: ::c_int = 29;
-pub const PR_GET_TIMERSLACK: ::c_int = 30;
-
-pub const PR_TASK_PERF_EVENTS_DISABLE: ::c_int = 31;
-pub const PR_TASK_PERF_EVENTS_ENABLE: ::c_int = 32;
-
-pub const PR_MCE_KILL: ::c_int = 33;
-pub const PR_MCE_KILL_CLEAR: ::c_int = 0;
-pub const PR_MCE_KILL_SET: ::c_int = 1;
-
-pub const PR_MCE_KILL_LATE: ::c_int = 0;
-pub const PR_MCE_KILL_EARLY: ::c_int = 1;
-pub const PR_MCE_KILL_DEFAULT: ::c_int = 2;
-
-pub const PR_MCE_KILL_GET: ::c_int = 34;
-
-pub const PR_SET_MM: ::c_int = 35;
-pub const PR_SET_MM_START_CODE: ::c_int = 1;
-pub const PR_SET_MM_END_CODE: ::c_int = 2;
-pub const PR_SET_MM_START_DATA: ::c_int = 3;
-pub const PR_SET_MM_END_DATA: ::c_int = 4;
-pub const PR_SET_MM_START_STACK: ::c_int = 5;
-pub const PR_SET_MM_START_BRK: ::c_int = 6;
-pub const PR_SET_MM_BRK: ::c_int = 7;
-pub const PR_SET_MM_ARG_START: ::c_int = 8;
-pub const PR_SET_MM_ARG_END: ::c_int = 9;
-pub const PR_SET_MM_ENV_START: ::c_int = 10;
-pub const PR_SET_MM_ENV_END: ::c_int = 11;
-pub const PR_SET_MM_AUXV: ::c_int = 12;
-pub const PR_SET_MM_EXE_FILE: ::c_int = 13;
-pub const PR_SET_MM_MAP: ::c_int = 14;
-pub const PR_SET_MM_MAP_SIZE: ::c_int = 15;
-
-pub const PR_SET_PTRACER: ::c_int = 0x59616d61;
-
-pub const PR_SET_CHILD_SUBREAPER: ::c_int = 36;
-pub const PR_GET_CHILD_SUBREAPER: ::c_int = 37;
-
-pub const PR_SET_NO_NEW_PRIVS: ::c_int = 38;
-pub const PR_GET_NO_NEW_PRIVS: ::c_int = 39;
-
-pub const PR_GET_TID_ADDRESS: ::c_int = 40;
-
-pub const PR_SET_THP_DISABLE: ::c_int = 41;
-pub const PR_GET_THP_DISABLE: ::c_int = 42;
-
-pub const PR_MPX_ENABLE_MANAGEMENT: ::c_int = 43;
-pub const PR_MPX_DISABLE_MANAGEMENT: ::c_int = 44;
-
-pub const PR_SET_FP_MODE: ::c_int = 45;
-pub const PR_GET_FP_MODE: ::c_int = 46;
-pub const PR_FP_MODE_FR: ::c_int = 1 << 0;
-pub const PR_FP_MODE_FRE: ::c_int = 1 << 1;
-
-pub const PR_CAP_AMBIENT: ::c_int = 47;
-pub const PR_CAP_AMBIENT_IS_SET: ::c_int = 1;
-pub const PR_CAP_AMBIENT_RAISE: ::c_int = 2;
-pub const PR_CAP_AMBIENT_LOWER: ::c_int = 3;
-pub const PR_CAP_AMBIENT_CLEAR_ALL: ::c_int = 4;
-
-pub const PR_SET_VMA: ::c_int = 0x53564d41;
-pub const PR_SET_VMA_ANON_NAME: ::c_int = 0;
-
-pub const GRND_NONBLOCK: ::c_uint = 0x0001;
-pub const GRND_RANDOM: ::c_uint = 0x0002;
-pub const GRND_INSECURE: ::c_uint = 0x0004;
-
-pub const SECCOMP_MODE_DISABLED: ::c_uint = 0;
-pub const SECCOMP_MODE_STRICT: ::c_uint = 1;
-pub const SECCOMP_MODE_FILTER: ::c_uint = 2;
-
-pub const SECCOMP_FILTER_FLAG_TSYNC: ::c_ulong = 1;
-pub const SECCOMP_FILTER_FLAG_LOG: ::c_ulong = 2;
-pub const SECCOMP_FILTER_FLAG_SPEC_ALLOW: ::c_ulong = 4;
-
-pub const SECCOMP_RET_KILL_PROCESS: ::c_uint = 0x80000000;
-pub const SECCOMP_RET_KILL_THREAD: ::c_uint = 0x00000000;
-pub const SECCOMP_RET_KILL: ::c_uint = SECCOMP_RET_KILL_THREAD;
-pub const SECCOMP_RET_TRAP: ::c_uint = 0x00030000;
-pub const SECCOMP_RET_ERRNO: ::c_uint = 0x00050000;
-pub const SECCOMP_RET_TRACE: ::c_uint = 0x7ff00000;
-pub const SECCOMP_RET_LOG: ::c_uint = 0x7ffc0000;
-pub const SECCOMP_RET_ALLOW: ::c_uint = 0x7fff0000;
-
-pub const SECCOMP_RET_ACTION_FULL: ::c_uint = 0xffff0000;
-pub const SECCOMP_RET_ACTION: ::c_uint = 0x7fff0000;
-pub const SECCOMP_RET_DATA: ::c_uint = 0x0000ffff;
-
-pub const ITIMER_REAL: ::c_int = 0;
-pub const ITIMER_VIRTUAL: ::c_int = 1;
-pub const ITIMER_PROF: ::c_int = 2;
-
-pub const TFD_CLOEXEC: ::c_int = O_CLOEXEC;
-pub const TFD_NONBLOCK: ::c_int = O_NONBLOCK;
-pub const TFD_TIMER_ABSTIME: ::c_int = 1;
-pub const TFD_TIMER_CANCEL_ON_SET: ::c_int = 2;
-
-pub const _POSIX_VDISABLE: ::cc_t = 0;
-
-pub const FALLOC_FL_KEEP_SIZE: ::c_int = 0x01;
-pub const FALLOC_FL_PUNCH_HOLE: ::c_int = 0x02;
-pub const FALLOC_FL_COLLAPSE_RANGE: ::c_int = 0x08;
-pub const FALLOC_FL_ZERO_RANGE: ::c_int = 0x10;
-pub const FALLOC_FL_INSERT_RANGE: ::c_int = 0x20;
-pub const FALLOC_FL_UNSHARE_RANGE: ::c_int = 0x40;
-
-#[deprecated(
-    since = "0.2.55",
-    note = "ENOATTR is not available on Linux; use ENODATA instead"
-)]
-pub const ENOATTR: ::c_int = ::ENODATA;
-
-pub const SO_ORIGINAL_DST: ::c_int = 80;
-
-pub const IP_RECVFRAGSIZE: ::c_int = 25;
-
-pub const IPV6_FLOWINFO: ::c_int = 11;
-pub const IPV6_FLOWLABEL_MGR: ::c_int = 32;
-pub const IPV6_FLOWINFO_SEND: ::c_int = 33;
-pub const IPV6_RECVFRAGSIZE: ::c_int = 77;
-pub const IPV6_FREEBIND: ::c_int = 78;
-pub const IPV6_FLOWINFO_FLOWLABEL: ::c_int = 0x000fffff;
-pub const IPV6_FLOWINFO_PRIORITY: ::c_int = 0x0ff00000;
-
-pub const IPV6_RTHDR_LOOSE: ::c_int = 0;
-pub const IPV6_RTHDR_STRICT: ::c_int = 1;
-
-// SO_MEMINFO offsets
-pub const SK_MEMINFO_RMEM_ALLOC: ::c_int = 0;
-pub const SK_MEMINFO_RCVBUF: ::c_int = 1;
-pub const SK_MEMINFO_WMEM_ALLOC: ::c_int = 2;
-pub const SK_MEMINFO_SNDBUF: ::c_int = 3;
-pub const SK_MEMINFO_FWD_ALLOC: ::c_int = 4;
-pub const SK_MEMINFO_WMEM_QUEUED: ::c_int = 5;
-pub const SK_MEMINFO_OPTMEM: ::c_int = 6;
-pub const SK_MEMINFO_BACKLOG: ::c_int = 7;
-pub const SK_MEMINFO_DROPS: ::c_int = 8;
-
-pub const IUTF8: ::tcflag_t = 0x00004000;
-#[cfg(not(all(target_env = "uclibc", target_arch = "mips")))]
-pub const CMSPAR: ::tcflag_t = 0o10000000000;
-
-pub const MFD_CLOEXEC: ::c_uint = 0x0001;
-pub const MFD_ALLOW_SEALING: ::c_uint = 0x0002;
-pub const MFD_HUGETLB: ::c_uint = 0x0004;
-pub const MFD_HUGE_64KB: ::c_uint = 0x40000000;
-pub const MFD_HUGE_512KB: ::c_uint = 0x4c000000;
-pub const MFD_HUGE_1MB: ::c_uint = 0x50000000;
-pub const MFD_HUGE_2MB: ::c_uint = 0x54000000;
-pub const MFD_HUGE_8MB: ::c_uint = 0x5c000000;
-pub const MFD_HUGE_16MB: ::c_uint = 0x60000000;
-pub const MFD_HUGE_32MB: ::c_uint = 0x64000000;
-pub const MFD_HUGE_256MB: ::c_uint = 0x70000000;
-pub const MFD_HUGE_512MB: ::c_uint = 0x74000000;
-pub const MFD_HUGE_1GB: ::c_uint = 0x78000000;
-pub const MFD_HUGE_2GB: ::c_uint = 0x7c000000;
-pub const MFD_HUGE_16GB: ::c_uint = 0x88000000;
-pub const MFD_HUGE_MASK: ::c_uint = 63;
-pub const MFD_HUGE_SHIFT: ::c_uint = 26;
-
-// linux/close_range.h
-pub const CLOSE_RANGE_UNSHARE: ::c_uint = 1 << 1;
-pub const CLOSE_RANGE_CLOEXEC: ::c_uint = 1 << 2;
-
-// linux/filter.h
-pub const SKF_AD_OFF: ::c_int = -0x1000;
-pub const SKF_AD_PROTOCOL: ::c_int = 0;
-pub const SKF_AD_PKTTYPE: ::c_int = 4;
-pub const SKF_AD_IFINDEX: ::c_int = 8;
-pub const SKF_AD_NLATTR: ::c_int = 12;
-pub const SKF_AD_NLATTR_NEST: ::c_int = 16;
-pub const SKF_AD_MARK: ::c_int = 20;
-pub const SKF_AD_QUEUE: ::c_int = 24;
-pub const SKF_AD_HATYPE: ::c_int = 28;
-pub const SKF_AD_RXHASH: ::c_int = 32;
-pub const SKF_AD_CPU: ::c_int = 36;
-pub const SKF_AD_ALU_XOR_X: ::c_int = 40;
-pub const SKF_AD_VLAN_TAG: ::c_int = 44;
-pub const SKF_AD_VLAN_TAG_PRESENT: ::c_int = 48;
-pub const SKF_AD_PAY_OFFSET: ::c_int = 52;
-pub const SKF_AD_RANDOM: ::c_int = 56;
-pub const SKF_AD_VLAN_TPID: ::c_int = 60;
-pub const SKF_AD_MAX: ::c_int = 64;
-pub const SKF_NET_OFF: ::c_int = -0x100000;
-pub const SKF_LL_OFF: ::c_int = -0x200000;
-pub const BPF_NET_OFF: ::c_int = SKF_NET_OFF;
-pub const BPF_LL_OFF: ::c_int = SKF_LL_OFF;
-pub const BPF_MEMWORDS: ::c_int = 16;
-pub const BPF_MAXINSNS: ::c_int = 4096;
-
-// linux/bpf_common.h
-pub const BPF_LD: ::__u32 = 0x00;
-pub const BPF_LDX: ::__u32 = 0x01;
-pub const BPF_ST: ::__u32 = 0x02;
-pub const BPF_STX: ::__u32 = 0x03;
-pub const BPF_ALU: ::__u32 = 0x04;
-pub const BPF_JMP: ::__u32 = 0x05;
-pub const BPF_RET: ::__u32 = 0x06;
-pub const BPF_MISC: ::__u32 = 0x07;
-pub const BPF_W: ::__u32 = 0x00;
-pub const BPF_H: ::__u32 = 0x08;
-pub const BPF_B: ::__u32 = 0x10;
-pub const BPF_IMM: ::__u32 = 0x00;
-pub const BPF_ABS: ::__u32 = 0x20;
-pub const BPF_IND: ::__u32 = 0x40;
-pub const BPF_MEM: ::__u32 = 0x60;
-pub const BPF_LEN: ::__u32 = 0x80;
-pub const BPF_MSH: ::__u32 = 0xa0;
-pub const BPF_ADD: ::__u32 = 0x00;
-pub const BPF_SUB: ::__u32 = 0x10;
-pub const BPF_MUL: ::__u32 = 0x20;
-pub const BPF_DIV: ::__u32 = 0x30;
-pub const BPF_OR: ::__u32 = 0x40;
-pub const BPF_AND: ::__u32 = 0x50;
-pub const BPF_LSH: ::__u32 = 0x60;
-pub const BPF_RSH: ::__u32 = 0x70;
-pub const BPF_NEG: ::__u32 = 0x80;
-pub const BPF_MOD: ::__u32 = 0x90;
-pub const BPF_XOR: ::__u32 = 0xa0;
-pub const BPF_JA: ::__u32 = 0x00;
-pub const BPF_JEQ: ::__u32 = 0x10;
-pub const BPF_JGT: ::__u32 = 0x20;
-pub const BPF_JGE: ::__u32 = 0x30;
-pub const BPF_JSET: ::__u32 = 0x40;
-pub const BPF_K: ::__u32 = 0x00;
-pub const BPF_X: ::__u32 = 0x08;
-
-// linux/openat2.h
-pub const RESOLVE_NO_XDEV: ::__u64 = 0x01;
-pub const RESOLVE_NO_MAGICLINKS: ::__u64 = 0x02;
-pub const RESOLVE_NO_SYMLINKS: ::__u64 = 0x04;
-pub const RESOLVE_BENEATH: ::__u64 = 0x08;
-pub const RESOLVE_IN_ROOT: ::__u64 = 0x10;
-pub const RESOLVE_CACHED: ::__u64 = 0x20;
-
-// linux/if_ether.h
-pub const ETH_ALEN: ::c_int = 6;
-pub const ETH_HLEN: ::c_int = 14;
-pub const ETH_ZLEN: ::c_int = 60;
-pub const ETH_DATA_LEN: ::c_int = 1500;
-pub const ETH_FRAME_LEN: ::c_int = 1514;
-pub const ETH_FCS_LEN: ::c_int = 4;
-
-// These are the defined Ethernet Protocol ID's.
-pub const ETH_P_LOOP: ::c_int = 0x0060;
-pub const ETH_P_PUP: ::c_int = 0x0200;
-pub const ETH_P_PUPAT: ::c_int = 0x0201;
-pub const ETH_P_IP: ::c_int = 0x0800;
-pub const ETH_P_X25: ::c_int = 0x0805;
-pub const ETH_P_ARP: ::c_int = 0x0806;
-pub const ETH_P_BPQ: ::c_int = 0x08FF;
-pub const ETH_P_IEEEPUP: ::c_int = 0x0a00;
-pub const ETH_P_IEEEPUPAT: ::c_int = 0x0a01;
-pub const ETH_P_BATMAN: ::c_int = 0x4305;
-pub const ETH_P_DEC: ::c_int = 0x6000;
-pub const ETH_P_DNA_DL: ::c_int = 0x6001;
-pub const ETH_P_DNA_RC: ::c_int = 0x6002;
-pub const ETH_P_DNA_RT: ::c_int = 0x6003;
-pub const ETH_P_LAT: ::c_int = 0x6004;
-pub const ETH_P_DIAG: ::c_int = 0x6005;
-pub const ETH_P_CUST: ::c_int = 0x6006;
-pub const ETH_P_SCA: ::c_int = 0x6007;
-pub const ETH_P_TEB: ::c_int = 0x6558;
-pub const ETH_P_RARP: ::c_int = 0x8035;
-pub const ETH_P_ATALK: ::c_int = 0x809B;
-pub const ETH_P_AARP: ::c_int = 0x80F3;
-pub const ETH_P_8021Q: ::c_int = 0x8100;
-pub const ETH_P_IPX: ::c_int = 0x8137;
-pub const ETH_P_IPV6: ::c_int = 0x86DD;
-pub const ETH_P_PAUSE: ::c_int = 0x8808;
-pub const ETH_P_SLOW: ::c_int = 0x8809;
-pub const ETH_P_WCCP: ::c_int = 0x883E;
-pub const ETH_P_MPLS_UC: ::c_int = 0x8847;
-pub const ETH_P_MPLS_MC: ::c_int = 0x8848;
-pub const ETH_P_ATMMPOA: ::c_int = 0x884c;
-pub const ETH_P_PPP_DISC: ::c_int = 0x8863;
-pub const ETH_P_PPP_SES: ::c_int = 0x8864;
-pub const ETH_P_LINK_CTL: ::c_int = 0x886c;
-pub const ETH_P_ATMFATE: ::c_int = 0x8884;
-pub const ETH_P_PAE: ::c_int = 0x888E;
-pub const ETH_P_AOE: ::c_int = 0x88A2;
-pub const ETH_P_8021AD: ::c_int = 0x88A8;
-pub const ETH_P_802_EX1: ::c_int = 0x88B5;
-pub const ETH_P_TIPC: ::c_int = 0x88CA;
-pub const ETH_P_MACSEC: ::c_int = 0x88E5;
-pub const ETH_P_8021AH: ::c_int = 0x88E7;
-pub const ETH_P_MVRP: ::c_int = 0x88F5;
-pub const ETH_P_1588: ::c_int = 0x88F7;
-pub const ETH_P_PRP: ::c_int = 0x88FB;
-pub const ETH_P_FCOE: ::c_int = 0x8906;
-pub const ETH_P_TDLS: ::c_int = 0x890D;
-pub const ETH_P_FIP: ::c_int = 0x8914;
-pub const ETH_P_80221: ::c_int = 0x8917;
-pub const ETH_P_LOOPBACK: ::c_int = 0x9000;
-pub const ETH_P_QINQ1: ::c_int = 0x9100;
-pub const ETH_P_QINQ2: ::c_int = 0x9200;
-pub const ETH_P_QINQ3: ::c_int = 0x9300;
-pub const ETH_P_EDSA: ::c_int = 0xDADA;
-pub const ETH_P_AF_IUCV: ::c_int = 0xFBFB;
-
-pub const ETH_P_802_3_MIN: ::c_int = 0x0600;
-
-// Non DIX types. Won't clash for 1500 types.
-pub const ETH_P_802_3: ::c_int = 0x0001;
-pub const ETH_P_AX25: ::c_int = 0x0002;
-pub const ETH_P_ALL: ::c_int = 0x0003;
-pub const ETH_P_802_2: ::c_int = 0x0004;
-pub const ETH_P_SNAP: ::c_int = 0x0005;
-pub const ETH_P_DDCMP: ::c_int = 0x0006;
-pub const ETH_P_WAN_PPP: ::c_int = 0x0007;
-pub const ETH_P_PPP_MP: ::c_int = 0x0008;
-pub const ETH_P_LOCALTALK: ::c_int = 0x0009;
-pub const ETH_P_CANFD: ::c_int = 0x000D;
-pub const ETH_P_PPPTALK: ::c_int = 0x0010;
-pub const ETH_P_TR_802_2: ::c_int = 0x0011;
-pub const ETH_P_MOBITEX: ::c_int = 0x0015;
-pub const ETH_P_CONTROL: ::c_int = 0x0016;
-pub const ETH_P_IRDA: ::c_int = 0x0017;
-pub const ETH_P_ECONET: ::c_int = 0x0018;
-pub const ETH_P_HDLC: ::c_int = 0x0019;
-pub const ETH_P_ARCNET: ::c_int = 0x001A;
-pub const ETH_P_DSA: ::c_int = 0x001B;
-pub const ETH_P_TRAILER: ::c_int = 0x001C;
-pub const ETH_P_PHONET: ::c_int = 0x00F5;
-pub const ETH_P_IEEE802154: ::c_int = 0x00F6;
-pub const ETH_P_CAIF: ::c_int = 0x00F7;
-
-pub const POSIX_SPAWN_RESETIDS: ::c_int = 0x01;
-pub const POSIX_SPAWN_SETPGROUP: ::c_int = 0x02;
-pub const POSIX_SPAWN_SETSIGDEF: ::c_int = 0x04;
-pub const POSIX_SPAWN_SETSIGMASK: ::c_int = 0x08;
-pub const POSIX_SPAWN_SETSCHEDPARAM: ::c_int = 0x10;
-pub const POSIX_SPAWN_SETSCHEDULER: ::c_int = 0x20;
-
-pub const NLMSG_NOOP: ::c_int = 0x1;
-pub const NLMSG_ERROR: ::c_int = 0x2;
-pub const NLMSG_DONE: ::c_int = 0x3;
-pub const NLMSG_OVERRUN: ::c_int = 0x4;
-pub const NLMSG_MIN_TYPE: ::c_int = 0x10;
-
-// linux/netfilter/nfnetlink.h
-pub const NFNLGRP_NONE: ::c_int = 0;
-pub const NFNLGRP_CONNTRACK_NEW: ::c_int = 1;
-pub const NFNLGRP_CONNTRACK_UPDATE: ::c_int = 2;
-pub const NFNLGRP_CONNTRACK_DESTROY: ::c_int = 3;
-pub const NFNLGRP_CONNTRACK_EXP_NEW: ::c_int = 4;
-pub const NFNLGRP_CONNTRACK_EXP_UPDATE: ::c_int = 5;
-pub const NFNLGRP_CONNTRACK_EXP_DESTROY: ::c_int = 6;
-pub const NFNLGRP_NFTABLES: ::c_int = 7;
-pub const NFNLGRP_ACCT_QUOTA: ::c_int = 8;
-pub const NFNLGRP_NFTRACE: ::c_int = 9;
-
-pub const NFNETLINK_V0: ::c_int = 0;
-
-pub const NFNL_SUBSYS_NONE: ::c_int = 0;
-pub const NFNL_SUBSYS_CTNETLINK: ::c_int = 1;
-pub const NFNL_SUBSYS_CTNETLINK_EXP: ::c_int = 2;
-pub const NFNL_SUBSYS_QUEUE: ::c_int = 3;
-pub const NFNL_SUBSYS_ULOG: ::c_int = 4;
-pub const NFNL_SUBSYS_OSF: ::c_int = 5;
-pub const NFNL_SUBSYS_IPSET: ::c_int = 6;
-pub const NFNL_SUBSYS_ACCT: ::c_int = 7;
-pub const NFNL_SUBSYS_CTNETLINK_TIMEOUT: ::c_int = 8;
-pub const NFNL_SUBSYS_CTHELPER: ::c_int = 9;
-pub const NFNL_SUBSYS_NFTABLES: ::c_int = 10;
-pub const NFNL_SUBSYS_NFT_COMPAT: ::c_int = 11;
-pub const NFNL_SUBSYS_HOOK: ::c_int = 12;
-pub const NFNL_SUBSYS_COUNT: ::c_int = 13;
-
-pub const NFNL_MSG_BATCH_BEGIN: ::c_int = NLMSG_MIN_TYPE;
-pub const NFNL_MSG_BATCH_END: ::c_int = NLMSG_MIN_TYPE + 1;
-
-pub const NFNL_BATCH_UNSPEC: ::c_int = 0;
-pub const NFNL_BATCH_GENID: ::c_int = 1;
-
-// linux/netfilter/nfnetlink_log.h
-pub const NFULNL_MSG_PACKET: ::c_int = 0;
-pub const NFULNL_MSG_CONFIG: ::c_int = 1;
-
-pub const NFULA_VLAN_UNSPEC: ::c_int = 0;
-pub const NFULA_VLAN_PROTO: ::c_int = 1;
-pub const NFULA_VLAN_TCI: ::c_int = 2;
-
-pub const NFULA_UNSPEC: ::c_int = 0;
-pub const NFULA_PACKET_HDR: ::c_int = 1;
-pub const NFULA_MARK: ::c_int = 2;
-pub const NFULA_TIMESTAMP: ::c_int = 3;
-pub const NFULA_IFINDEX_INDEV: ::c_int = 4;
-pub const NFULA_IFINDEX_OUTDEV: ::c_int = 5;
-pub const NFULA_IFINDEX_PHYSINDEV: ::c_int = 6;
-pub const NFULA_IFINDEX_PHYSOUTDEV: ::c_int = 7;
-pub const NFULA_HWADDR: ::c_int = 8;
-pub const NFULA_PAYLOAD: ::c_int = 9;
-pub const NFULA_PREFIX: ::c_int = 10;
-pub const NFULA_UID: ::c_int = 11;
-pub const NFULA_SEQ: ::c_int = 12;
-pub const NFULA_SEQ_GLOBAL: ::c_int = 13;
-pub const NFULA_GID: ::c_int = 14;
-pub const NFULA_HWTYPE: ::c_int = 15;
-pub const NFULA_HWHEADER: ::c_int = 16;
-pub const NFULA_HWLEN: ::c_int = 17;
-pub const NFULA_CT: ::c_int = 18;
-pub const NFULA_CT_INFO: ::c_int = 19;
-pub const NFULA_VLAN: ::c_int = 20;
-pub const NFULA_L2HDR: ::c_int = 21;
-
-pub const NFULNL_CFG_CMD_NONE: ::c_int = 0;
-pub const NFULNL_CFG_CMD_BIND: ::c_int = 1;
-pub const NFULNL_CFG_CMD_UNBIND: ::c_int = 2;
-pub const NFULNL_CFG_CMD_PF_BIND: ::c_int = 3;
-pub const NFULNL_CFG_CMD_PF_UNBIND: ::c_int = 4;
-
-pub const NFULA_CFG_UNSPEC: ::c_int = 0;
-pub const NFULA_CFG_CMD: ::c_int = 1;
-pub const NFULA_CFG_MODE: ::c_int = 2;
-pub const NFULA_CFG_NLBUFSIZ: ::c_int = 3;
-pub const NFULA_CFG_TIMEOUT: ::c_int = 4;
-pub const NFULA_CFG_QTHRESH: ::c_int = 5;
-pub const NFULA_CFG_FLAGS: ::c_int = 6;
-
-pub const NFULNL_COPY_NONE: ::c_int = 0x00;
-pub const NFULNL_COPY_META: ::c_int = 0x01;
-pub const NFULNL_COPY_PACKET: ::c_int = 0x02;
-
-pub const NFULNL_CFG_F_SEQ: ::c_int = 0x0001;
-pub const NFULNL_CFG_F_SEQ_GLOBAL: ::c_int = 0x0002;
-pub const NFULNL_CFG_F_CONNTRACK: ::c_int = 0x0004;
-
-// linux/netfilter/nfnetlink_queue.h
-pub const NFQNL_MSG_PACKET: ::c_int = 0;
-pub const NFQNL_MSG_VERDICT: ::c_int = 1;
-pub const NFQNL_MSG_CONFIG: ::c_int = 2;
-pub const NFQNL_MSG_VERDICT_BATCH: ::c_int = 3;
-
-pub const NFQA_UNSPEC: ::c_int = 0;
-pub const NFQA_PACKET_HDR: ::c_int = 1;
-pub const NFQA_VERDICT_HDR: ::c_int = 2;
-pub const NFQA_MARK: ::c_int = 3;
-pub const NFQA_TIMESTAMP: ::c_int = 4;
-pub const NFQA_IFINDEX_INDEV: ::c_int = 5;
-pub const NFQA_IFINDEX_OUTDEV: ::c_int = 6;
-pub const NFQA_IFINDEX_PHYSINDEV: ::c_int = 7;
-pub const NFQA_IFINDEX_PHYSOUTDEV: ::c_int = 8;
-pub const NFQA_HWADDR: ::c_int = 9;
-pub const NFQA_PAYLOAD: ::c_int = 10;
-pub const NFQA_CT: ::c_int = 11;
-pub const NFQA_CT_INFO: ::c_int = 12;
-pub const NFQA_CAP_LEN: ::c_int = 13;
-pub const NFQA_SKB_INFO: ::c_int = 14;
-pub const NFQA_EXP: ::c_int = 15;
-pub const NFQA_UID: ::c_int = 16;
-pub const NFQA_GID: ::c_int = 17;
-pub const NFQA_SECCTX: ::c_int = 18;
-pub const NFQA_VLAN: ::c_int = 19;
-pub const NFQA_L2HDR: ::c_int = 20;
-pub const NFQA_PRIORITY: ::c_int = 21;
-
-pub const NFQA_VLAN_UNSPEC: ::c_int = 0;
-pub const NFQA_VLAN_PROTO: ::c_int = 1;
-pub const NFQA_VLAN_TCI: ::c_int = 2;
-
-pub const NFQNL_CFG_CMD_NONE: ::c_int = 0;
-pub const NFQNL_CFG_CMD_BIND: ::c_int = 1;
-pub const NFQNL_CFG_CMD_UNBIND: ::c_int = 2;
-pub const NFQNL_CFG_CMD_PF_BIND: ::c_int = 3;
-pub const NFQNL_CFG_CMD_PF_UNBIND: ::c_int = 4;
-
-pub const NFQNL_COPY_NONE: ::c_int = 0;
-pub const NFQNL_COPY_META: ::c_int = 1;
-pub const NFQNL_COPY_PACKET: ::c_int = 2;
-
-pub const NFQA_CFG_UNSPEC: ::c_int = 0;
-pub const NFQA_CFG_CMD: ::c_int = 1;
-pub const NFQA_CFG_PARAMS: ::c_int = 2;
-pub const NFQA_CFG_QUEUE_MAXLEN: ::c_int = 3;
-pub const NFQA_CFG_MASK: ::c_int = 4;
-pub const NFQA_CFG_FLAGS: ::c_int = 5;
-
-pub const NFQA_CFG_F_FAIL_OPEN: ::c_int = 0x0001;
-pub const NFQA_CFG_F_CONNTRACK: ::c_int = 0x0002;
-pub const NFQA_CFG_F_GSO: ::c_int = 0x0004;
-pub const NFQA_CFG_F_UID_GID: ::c_int = 0x0008;
-pub const NFQA_CFG_F_SECCTX: ::c_int = 0x0010;
-pub const NFQA_CFG_F_MAX: ::c_int = 0x0020;
-
-pub const NFQA_SKB_CSUMNOTREADY: ::c_int = 0x0001;
-pub const NFQA_SKB_GSO: ::c_int = 0x0002;
-pub const NFQA_SKB_CSUM_NOTVERIFIED: ::c_int = 0x0004;
-
-// linux/genetlink.h
-
-pub const GENL_NAMSIZ: ::c_int = 16;
-
-pub const GENL_MIN_ID: ::c_int = NLMSG_MIN_TYPE;
-pub const GENL_MAX_ID: ::c_int = 1023;
-
-pub const GENL_ADMIN_PERM: ::c_int = 0x01;
-pub const GENL_CMD_CAP_DO: ::c_int = 0x02;
-pub const GENL_CMD_CAP_DUMP: ::c_int = 0x04;
-pub const GENL_CMD_CAP_HASPOL: ::c_int = 0x08;
-
-pub const GENL_ID_CTRL: ::c_int = NLMSG_MIN_TYPE;
-
-pub const CTRL_CMD_UNSPEC: ::c_int = 0;
-pub const CTRL_CMD_NEWFAMILY: ::c_int = 1;
-pub const CTRL_CMD_DELFAMILY: ::c_int = 2;
-pub const CTRL_CMD_GETFAMILY: ::c_int = 3;
-pub const CTRL_CMD_NEWOPS: ::c_int = 4;
-pub const CTRL_CMD_DELOPS: ::c_int = 5;
-pub const CTRL_CMD_GETOPS: ::c_int = 6;
-pub const CTRL_CMD_NEWMCAST_GRP: ::c_int = 7;
-pub const CTRL_CMD_DELMCAST_GRP: ::c_int = 8;
-pub const CTRL_CMD_GETMCAST_GRP: ::c_int = 9;
-
-pub const CTRL_ATTR_UNSPEC: ::c_int = 0;
-pub const CTRL_ATTR_FAMILY_ID: ::c_int = 1;
-pub const CTRL_ATTR_FAMILY_NAME: ::c_int = 2;
-pub const CTRL_ATTR_VERSION: ::c_int = 3;
-pub const CTRL_ATTR_HDRSIZE: ::c_int = 4;
-pub const CTRL_ATTR_MAXATTR: ::c_int = 5;
-pub const CTRL_ATTR_OPS: ::c_int = 6;
-pub const CTRL_ATTR_MCAST_GROUPS: ::c_int = 7;
-
-pub const CTRL_ATTR_OP_UNSPEC: ::c_int = 0;
-pub const CTRL_ATTR_OP_ID: ::c_int = 1;
-pub const CTRL_ATTR_OP_FLAGS: ::c_int = 2;
-
-pub const CTRL_ATTR_MCAST_GRP_UNSPEC: ::c_int = 0;
-pub const CTRL_ATTR_MCAST_GRP_NAME: ::c_int = 1;
-pub const CTRL_ATTR_MCAST_GRP_ID: ::c_int = 2;
-
-// linux/if_packet.h
-pub const PACKET_ADD_MEMBERSHIP: ::c_int = 1;
-pub const PACKET_DROP_MEMBERSHIP: ::c_int = 2;
-
-pub const PACKET_MR_MULTICAST: ::c_int = 0;
-pub const PACKET_MR_PROMISC: ::c_int = 1;
-pub const PACKET_MR_ALLMULTI: ::c_int = 2;
-
-// linux/netfilter.h
-pub const NF_DROP: ::c_int = 0;
-pub const NF_ACCEPT: ::c_int = 1;
-pub const NF_STOLEN: ::c_int = 2;
-pub const NF_QUEUE: ::c_int = 3;
-pub const NF_REPEAT: ::c_int = 4;
-pub const NF_STOP: ::c_int = 5;
-pub const NF_MAX_VERDICT: ::c_int = NF_STOP;
-
-pub const NF_VERDICT_MASK: ::c_int = 0x000000ff;
-pub const NF_VERDICT_FLAG_QUEUE_BYPASS: ::c_int = 0x00008000;
-
-pub const NF_VERDICT_QMASK: ::c_int = 0xffff0000;
-pub const NF_VERDICT_QBITS: ::c_int = 16;
-
-pub const NF_VERDICT_BITS: ::c_int = 16;
-
-pub const NF_INET_PRE_ROUTING: ::c_int = 0;
-pub const NF_INET_LOCAL_IN: ::c_int = 1;
-pub const NF_INET_FORWARD: ::c_int = 2;
-pub const NF_INET_LOCAL_OUT: ::c_int = 3;
-pub const NF_INET_POST_ROUTING: ::c_int = 4;
-pub const NF_INET_NUMHOOKS: ::c_int = 5;
-
-// Some NFPROTO are not compatible with musl and are defined in submodules.
-pub const NFPROTO_UNSPEC: ::c_int = 0;
-pub const NFPROTO_IPV4: ::c_int = 2;
-pub const NFPROTO_ARP: ::c_int = 3;
-pub const NFPROTO_BRIDGE: ::c_int = 7;
-pub const NFPROTO_IPV6: ::c_int = 10;
-pub const NFPROTO_DECNET: ::c_int = 12;
-pub const NFPROTO_NUMPROTO: ::c_int = 13;
-pub const NFPROTO_INET: ::c_int = 1;
-pub const NFPROTO_NETDEV: ::c_int = 5;
-
-pub const NF_NETDEV_INGRESS: ::c_int = 0;
-pub const NF_NETDEV_NUMHOOKS: ::c_int = 1;
-
-// linux/netfilter_ipv4.h
-pub const NF_IP_PRE_ROUTING: ::c_int = 0;
-pub const NF_IP_LOCAL_IN: ::c_int = 1;
-pub const NF_IP_FORWARD: ::c_int = 2;
-pub const NF_IP_LOCAL_OUT: ::c_int = 3;
-pub const NF_IP_POST_ROUTING: ::c_int = 4;
-pub const NF_IP_NUMHOOKS: ::c_int = 5;
-
-pub const NF_IP_PRI_FIRST: ::c_int = ::INT_MIN;
-pub const NF_IP_PRI_CONNTRACK_DEFRAG: ::c_int = -400;
-pub const NF_IP_PRI_RAW: ::c_int = -300;
-pub const NF_IP_PRI_SELINUX_FIRST: ::c_int = -225;
-pub const NF_IP_PRI_CONNTRACK: ::c_int = -200;
-pub const NF_IP_PRI_MANGLE: ::c_int = -150;
-pub const NF_IP_PRI_NAT_DST: ::c_int = -100;
-pub const NF_IP_PRI_FILTER: ::c_int = 0;
-pub const NF_IP_PRI_SECURITY: ::c_int = 50;
-pub const NF_IP_PRI_NAT_SRC: ::c_int = 100;
-pub const NF_IP_PRI_SELINUX_LAST: ::c_int = 225;
-pub const NF_IP_PRI_CONNTRACK_HELPER: ::c_int = 300;
-pub const NF_IP_PRI_CONNTRACK_CONFIRM: ::c_int = ::INT_MAX;
-pub const NF_IP_PRI_LAST: ::c_int = ::INT_MAX;
-
-// linux/netfilter_ipv6.h
-pub const NF_IP6_PRE_ROUTING: ::c_int = 0;
-pub const NF_IP6_LOCAL_IN: ::c_int = 1;
-pub const NF_IP6_FORWARD: ::c_int = 2;
-pub const NF_IP6_LOCAL_OUT: ::c_int = 3;
-pub const NF_IP6_POST_ROUTING: ::c_int = 4;
-pub const NF_IP6_NUMHOOKS: ::c_int = 5;
-
-pub const NF_IP6_PRI_FIRST: ::c_int = ::INT_MIN;
-pub const NF_IP6_PRI_CONNTRACK_DEFRAG: ::c_int = -400;
-pub const NF_IP6_PRI_RAW: ::c_int = -300;
-pub const NF_IP6_PRI_SELINUX_FIRST: ::c_int = -225;
-pub const NF_IP6_PRI_CONNTRACK: ::c_int = -200;
-pub const NF_IP6_PRI_MANGLE: ::c_int = -150;
-pub const NF_IP6_PRI_NAT_DST: ::c_int = -100;
-pub const NF_IP6_PRI_FILTER: ::c_int = 0;
-pub const NF_IP6_PRI_SECURITY: ::c_int = 50;
-pub const NF_IP6_PRI_NAT_SRC: ::c_int = 100;
-pub const NF_IP6_PRI_SELINUX_LAST: ::c_int = 225;
-pub const NF_IP6_PRI_CONNTRACK_HELPER: ::c_int = 300;
-pub const NF_IP6_PRI_LAST: ::c_int = ::INT_MAX;
-
-// linux/netfilter_ipv6/ip6_tables.h
-pub const IP6T_SO_ORIGINAL_DST: ::c_int = 80;
-
-pub const SIOCADDRT: ::c_ulong = 0x0000890B;
-pub const SIOCDELRT: ::c_ulong = 0x0000890C;
-pub const SIOCGIFNAME: ::c_ulong = 0x00008910;
-pub const SIOCSIFLINK: ::c_ulong = 0x00008911;
-pub const SIOCGIFCONF: ::c_ulong = 0x00008912;
-pub const SIOCGIFFLAGS: ::c_ulong = 0x00008913;
-pub const SIOCSIFFLAGS: ::c_ulong = 0x00008914;
-pub const SIOCGIFADDR: ::c_ulong = 0x00008915;
-pub const SIOCSIFADDR: ::c_ulong = 0x00008916;
-pub const SIOCGIFDSTADDR: ::c_ulong = 0x00008917;
-pub const SIOCSIFDSTADDR: ::c_ulong = 0x00008918;
-pub const SIOCGIFBRDADDR: ::c_ulong = 0x00008919;
-pub const SIOCSIFBRDADDR: ::c_ulong = 0x0000891A;
-pub const SIOCGIFNETMASK: ::c_ulong = 0x0000891B;
-pub const SIOCSIFNETMASK: ::c_ulong = 0x0000891C;
-pub const SIOCGIFMETRIC: ::c_ulong = 0x0000891D;
-pub const SIOCSIFMETRIC: ::c_ulong = 0x0000891E;
-pub const SIOCGIFMEM: ::c_ulong = 0x0000891F;
-pub const SIOCSIFMEM: ::c_ulong = 0x00008920;
-pub const SIOCGIFMTU: ::c_ulong = 0x00008921;
-pub const SIOCSIFMTU: ::c_ulong = 0x00008922;
-pub const SIOCSIFHWADDR: ::c_ulong = 0x00008924;
-pub const SIOCGIFENCAP: ::c_ulong = 0x00008925;
-pub const SIOCSIFENCAP: ::c_ulong = 0x00008926;
-pub const SIOCGIFHWADDR: ::c_ulong = 0x00008927;
-pub const SIOCGIFSLAVE: ::c_ulong = 0x00008929;
-pub const SIOCSIFSLAVE: ::c_ulong = 0x00008930;
-pub const SIOCADDMULTI: ::c_ulong = 0x00008931;
-pub const SIOCDELMULTI: ::c_ulong = 0x00008932;
-pub const SIOCGIFINDEX: ::c_ulong = 0x00008933;
-pub const SIOGIFINDEX: ::c_ulong = SIOCGIFINDEX;
-pub const SIOCSIFPFLAGS: ::c_ulong = 0x00008934;
-pub const SIOCGIFPFLAGS: ::c_ulong = 0x00008935;
-pub const SIOCDIFADDR: ::c_ulong = 0x00008936;
-pub const SIOCSIFHWBROADCAST: ::c_ulong = 0x00008937;
-pub const SIOCGIFCOUNT: ::c_ulong = 0x00008938;
-pub const SIOCGIFBR: ::c_ulong = 0x00008940;
-pub const SIOCSIFBR: ::c_ulong = 0x00008941;
-pub const SIOCGIFTXQLEN: ::c_ulong = 0x00008942;
-pub const SIOCSIFTXQLEN: ::c_ulong = 0x00008943;
-pub const SIOCETHTOOL: ::c_ulong = 0x00008946;
-pub const SIOCGMIIPHY: ::c_ulong = 0x00008947;
-pub const SIOCGMIIREG: ::c_ulong = 0x00008948;
-pub const SIOCSMIIREG: ::c_ulong = 0x00008949;
-pub const SIOCWANDEV: ::c_ulong = 0x0000894A;
-pub const SIOCOUTQNSD: ::c_ulong = 0x0000894B;
-pub const SIOCGSKNS: ::c_ulong = 0x0000894C;
-pub const SIOCDARP: ::c_ulong = 0x00008953;
-pub const SIOCGARP: ::c_ulong = 0x00008954;
-pub const SIOCSARP: ::c_ulong = 0x00008955;
-pub const SIOCDRARP: ::c_ulong = 0x00008960;
-pub const SIOCGRARP: ::c_ulong = 0x00008961;
-pub const SIOCSRARP: ::c_ulong = 0x00008962;
-pub const SIOCGIFMAP: ::c_ulong = 0x00008970;
-pub const SIOCSIFMAP: ::c_ulong = 0x00008971;
-
-pub const IPTOS_TOS_MASK: u8 = 0x1E;
-pub const IPTOS_PREC_MASK: u8 = 0xE0;
-
-pub const IPTOS_ECN_NOT_ECT: u8 = 0x00;
-
-pub const RTF_UP: ::c_ushort = 0x0001;
-pub const RTF_GATEWAY: ::c_ushort = 0x0002;
-
-pub const RTF_HOST: ::c_ushort = 0x0004;
-pub const RTF_REINSTATE: ::c_ushort = 0x0008;
-pub const RTF_DYNAMIC: ::c_ushort = 0x0010;
-pub const RTF_MODIFIED: ::c_ushort = 0x0020;
-pub const RTF_MTU: ::c_ushort = 0x0040;
-pub const RTF_MSS: ::c_ushort = RTF_MTU;
-pub const RTF_WINDOW: ::c_ushort = 0x0080;
-pub const RTF_IRTT: ::c_ushort = 0x0100;
-pub const RTF_REJECT: ::c_ushort = 0x0200;
-pub const RTF_STATIC: ::c_ushort = 0x0400;
-pub const RTF_XRESOLVE: ::c_ushort = 0x0800;
-pub const RTF_NOFORWARD: ::c_ushort = 0x1000;
-pub const RTF_THROW: ::c_ushort = 0x2000;
-pub const RTF_NOPMTUDISC: ::c_ushort = 0x4000;
-
-pub const RTF_DEFAULT: u32 = 0x00010000;
-pub const RTF_ALLONLINK: u32 = 0x00020000;
-pub const RTF_ADDRCONF: u32 = 0x00040000;
-pub const RTF_LINKRT: u32 = 0x00100000;
-pub const RTF_NONEXTHOP: u32 = 0x00200000;
-pub const RTF_CACHE: u32 = 0x01000000;
-pub const RTF_FLOW: u32 = 0x02000000;
-pub const RTF_POLICY: u32 = 0x04000000;
-
-pub const RTCF_VALVE: u32 = 0x00200000;
-pub const RTCF_MASQ: u32 = 0x00400000;
-pub const RTCF_NAT: u32 = 0x00800000;
-pub const RTCF_DOREDIRECT: u32 = 0x01000000;
-pub const RTCF_LOG: u32 = 0x02000000;
-pub const RTCF_DIRECTSRC: u32 = 0x04000000;
-
-pub const RTF_LOCAL: u32 = 0x80000000;
-pub const RTF_INTERFACE: u32 = 0x40000000;
-pub const RTF_MULTICAST: u32 = 0x20000000;
-pub const RTF_BROADCAST: u32 = 0x10000000;
-pub const RTF_NAT: u32 = 0x08000000;
-pub const RTF_ADDRCLASSMASK: u32 = 0xF8000000;
-
-pub const RT_CLASS_UNSPEC: u8 = 0;
-pub const RT_CLASS_DEFAULT: u8 = 253;
-pub const RT_CLASS_MAIN: u8 = 254;
-pub const RT_CLASS_LOCAL: u8 = 255;
-pub const RT_CLASS_MAX: u8 = 255;
-
-// linux/neighbor.h
-pub const NUD_NONE: u16 = 0x00;
-pub const NUD_INCOMPLETE: u16 = 0x01;
-pub const NUD_REACHABLE: u16 = 0x02;
-pub const NUD_STALE: u16 = 0x04;
-pub const NUD_DELAY: u16 = 0x08;
-pub const NUD_PROBE: u16 = 0x10;
-pub const NUD_FAILED: u16 = 0x20;
-pub const NUD_NOARP: u16 = 0x40;
-pub const NUD_PERMANENT: u16 = 0x80;
-
-pub const NTF_USE: u8 = 0x01;
-pub const NTF_SELF: u8 = 0x02;
-pub const NTF_MASTER: u8 = 0x04;
-pub const NTF_PROXY: u8 = 0x08;
-pub const NTF_ROUTER: u8 = 0x80;
-
-pub const NDA_UNSPEC: ::c_ushort = 0;
-pub const NDA_DST: ::c_ushort = 1;
-pub const NDA_LLADDR: ::c_ushort = 2;
-pub const NDA_CACHEINFO: ::c_ushort = 3;
-pub const NDA_PROBES: ::c_ushort = 4;
-pub const NDA_VLAN: ::c_ushort = 5;
-pub const NDA_PORT: ::c_ushort = 6;
-pub const NDA_VNI: ::c_ushort = 7;
-pub const NDA_IFINDEX: ::c_ushort = 8;
-
-// linux/netlink.h
-pub const NLA_ALIGNTO: ::c_int = 4;
-
-pub const NETLINK_ROUTE: ::c_int = 0;
-pub const NETLINK_UNUSED: ::c_int = 1;
-pub const NETLINK_USERSOCK: ::c_int = 2;
-pub const NETLINK_FIREWALL: ::c_int = 3;
-pub const NETLINK_SOCK_DIAG: ::c_int = 4;
-pub const NETLINK_NFLOG: ::c_int = 5;
-pub const NETLINK_XFRM: ::c_int = 6;
-pub const NETLINK_SELINUX: ::c_int = 7;
-pub const NETLINK_ISCSI: ::c_int = 8;
-pub const NETLINK_AUDIT: ::c_int = 9;
-pub const NETLINK_FIB_LOOKUP: ::c_int = 10;
-pub const NETLINK_CONNECTOR: ::c_int = 11;
-pub const NETLINK_NETFILTER: ::c_int = 12;
-pub const NETLINK_IP6_FW: ::c_int = 13;
-pub const NETLINK_DNRTMSG: ::c_int = 14;
-pub const NETLINK_KOBJECT_UEVENT: ::c_int = 15;
-pub const NETLINK_GENERIC: ::c_int = 16;
-pub const NETLINK_SCSITRANSPORT: ::c_int = 18;
-pub const NETLINK_ECRYPTFS: ::c_int = 19;
-pub const NETLINK_RDMA: ::c_int = 20;
-pub const NETLINK_CRYPTO: ::c_int = 21;
-pub const NETLINK_INET_DIAG: ::c_int = NETLINK_SOCK_DIAG;
-
-pub const NLM_F_REQUEST: ::c_int = 1;
-pub const NLM_F_MULTI: ::c_int = 2;
-pub const NLM_F_ACK: ::c_int = 4;
-pub const NLM_F_ECHO: ::c_int = 8;
-pub const NLM_F_DUMP_INTR: ::c_int = 16;
-pub const NLM_F_DUMP_FILTERED: ::c_int = 32;
-
-pub const NLM_F_ROOT: ::c_int = 0x100;
-pub const NLM_F_MATCH: ::c_int = 0x200;
-pub const NLM_F_ATOMIC: ::c_int = 0x400;
-pub const NLM_F_DUMP: ::c_int = NLM_F_ROOT | NLM_F_MATCH;
-
-pub const NLM_F_REPLACE: ::c_int = 0x100;
-pub const NLM_F_EXCL: ::c_int = 0x200;
-pub const NLM_F_CREATE: ::c_int = 0x400;
-pub const NLM_F_APPEND: ::c_int = 0x800;
-
-pub const NETLINK_ADD_MEMBERSHIP: ::c_int = 1;
-pub const NETLINK_DROP_MEMBERSHIP: ::c_int = 2;
-pub const NETLINK_PKTINFO: ::c_int = 3;
-pub const NETLINK_BROADCAST_ERROR: ::c_int = 4;
-pub const NETLINK_NO_ENOBUFS: ::c_int = 5;
-pub const NETLINK_RX_RING: ::c_int = 6;
-pub const NETLINK_TX_RING: ::c_int = 7;
-pub const NETLINK_LISTEN_ALL_NSID: ::c_int = 8;
-pub const NETLINK_LIST_MEMBERSHIPS: ::c_int = 9;
-pub const NETLINK_CAP_ACK: ::c_int = 10;
-pub const NETLINK_EXT_ACK: ::c_int = 11;
-pub const NETLINK_GET_STRICT_CHK: ::c_int = 12;
-
-pub const NLA_F_NESTED: ::c_int = 1 << 15;
-pub const NLA_F_NET_BYTEORDER: ::c_int = 1 << 14;
-pub const NLA_TYPE_MASK: ::c_int = !(NLA_F_NESTED | NLA_F_NET_BYTEORDER);
-
-// linux/rtnetlink.h
-pub const TCA_UNSPEC: ::c_ushort = 0;
-pub const TCA_KIND: ::c_ushort = 1;
-pub const TCA_OPTIONS: ::c_ushort = 2;
-pub const TCA_STATS: ::c_ushort = 3;
-pub const TCA_XSTATS: ::c_ushort = 4;
-pub const TCA_RATE: ::c_ushort = 5;
-pub const TCA_FCNT: ::c_ushort = 6;
-pub const TCA_STATS2: ::c_ushort = 7;
-pub const TCA_STAB: ::c_ushort = 8;
-
-pub const RTM_NEWLINK: u16 = 16;
-pub const RTM_DELLINK: u16 = 17;
-pub const RTM_GETLINK: u16 = 18;
-pub const RTM_SETLINK: u16 = 19;
-pub const RTM_NEWADDR: u16 = 20;
-pub const RTM_DELADDR: u16 = 21;
-pub const RTM_GETADDR: u16 = 22;
-pub const RTM_NEWROUTE: u16 = 24;
-pub const RTM_DELROUTE: u16 = 25;
-pub const RTM_GETROUTE: u16 = 26;
-pub const RTM_NEWNEIGH: u16 = 28;
-pub const RTM_DELNEIGH: u16 = 29;
-pub const RTM_GETNEIGH: u16 = 30;
-pub const RTM_NEWRULE: u16 = 32;
-pub const RTM_DELRULE: u16 = 33;
-pub const RTM_GETRULE: u16 = 34;
-pub const RTM_NEWQDISC: u16 = 36;
-pub const RTM_DELQDISC: u16 = 37;
-pub const RTM_GETQDISC: u16 = 38;
-pub const RTM_NEWTCLASS: u16 = 40;
-pub const RTM_DELTCLASS: u16 = 41;
-pub const RTM_GETTCLASS: u16 = 42;
-pub const RTM_NEWTFILTER: u16 = 44;
-pub const RTM_DELTFILTER: u16 = 45;
-pub const RTM_GETTFILTER: u16 = 46;
-pub const RTM_NEWACTION: u16 = 48;
-pub const RTM_DELACTION: u16 = 49;
-pub const RTM_GETACTION: u16 = 50;
-pub const RTM_NEWPREFIX: u16 = 52;
-pub const RTM_GETMULTICAST: u16 = 58;
-pub const RTM_GETANYCAST: u16 = 62;
-pub const RTM_NEWNEIGHTBL: u16 = 64;
-pub const RTM_GETNEIGHTBL: u16 = 66;
-pub const RTM_SETNEIGHTBL: u16 = 67;
-pub const RTM_NEWNDUSEROPT: u16 = 68;
-pub const RTM_NEWADDRLABEL: u16 = 72;
-pub const RTM_DELADDRLABEL: u16 = 73;
-pub const RTM_GETADDRLABEL: u16 = 74;
-pub const RTM_GETDCB: u16 = 78;
-pub const RTM_SETDCB: u16 = 79;
-pub const RTM_NEWNETCONF: u16 = 80;
-pub const RTM_GETNETCONF: u16 = 82;
-pub const RTM_NEWMDB: u16 = 84;
-pub const RTM_DELMDB: u16 = 85;
-pub const RTM_GETMDB: u16 = 86;
-pub const RTM_NEWNSID: u16 = 88;
-pub const RTM_DELNSID: u16 = 89;
-pub const RTM_GETNSID: u16 = 90;
-
-pub const RTM_F_NOTIFY: ::c_uint = 0x100;
-pub const RTM_F_CLONED: ::c_uint = 0x200;
-pub const RTM_F_EQUALIZE: ::c_uint = 0x400;
-pub const RTM_F_PREFIX: ::c_uint = 0x800;
-
-pub const RTA_UNSPEC: ::c_ushort = 0;
-pub const RTA_DST: ::c_ushort = 1;
-pub const RTA_SRC: ::c_ushort = 2;
-pub const RTA_IIF: ::c_ushort = 3;
-pub const RTA_OIF: ::c_ushort = 4;
-pub const RTA_GATEWAY: ::c_ushort = 5;
-pub const RTA_PRIORITY: ::c_ushort = 6;
-pub const RTA_PREFSRC: ::c_ushort = 7;
-pub const RTA_METRICS: ::c_ushort = 8;
-pub const RTA_MULTIPATH: ::c_ushort = 9;
-pub const RTA_PROTOINFO: ::c_ushort = 10; // No longer used
-pub const RTA_FLOW: ::c_ushort = 11;
-pub const RTA_CACHEINFO: ::c_ushort = 12;
-pub const RTA_SESSION: ::c_ushort = 13; // No longer used
-pub const RTA_MP_ALGO: ::c_ushort = 14; // No longer used
-pub const RTA_TABLE: ::c_ushort = 15;
-pub const RTA_MARK: ::c_ushort = 16;
-pub const RTA_MFC_STATS: ::c_ushort = 17;
-
-pub const RTN_UNSPEC: ::c_uchar = 0;
-pub const RTN_UNICAST: ::c_uchar = 1;
-pub const RTN_LOCAL: ::c_uchar = 2;
-pub const RTN_BROADCAST: ::c_uchar = 3;
-pub const RTN_ANYCAST: ::c_uchar = 4;
-pub const RTN_MULTICAST: ::c_uchar = 5;
-pub const RTN_BLACKHOLE: ::c_uchar = 6;
-pub const RTN_UNREACHABLE: ::c_uchar = 7;
-pub const RTN_PROHIBIT: ::c_uchar = 8;
-pub const RTN_THROW: ::c_uchar = 9;
-pub const RTN_NAT: ::c_uchar = 10;
-pub const RTN_XRESOLVE: ::c_uchar = 11;
-
-pub const RTPROT_UNSPEC: ::c_uchar = 0;
-pub const RTPROT_REDIRECT: ::c_uchar = 1;
-pub const RTPROT_KERNEL: ::c_uchar = 2;
-pub const RTPROT_BOOT: ::c_uchar = 3;
-pub const RTPROT_STATIC: ::c_uchar = 4;
-
-pub const RT_SCOPE_UNIVERSE: ::c_uchar = 0;
-pub const RT_SCOPE_SITE: ::c_uchar = 200;
-pub const RT_SCOPE_LINK: ::c_uchar = 253;
-pub const RT_SCOPE_HOST: ::c_uchar = 254;
-pub const RT_SCOPE_NOWHERE: ::c_uchar = 255;
-
-pub const RT_TABLE_UNSPEC: ::c_uchar = 0;
-pub const RT_TABLE_COMPAT: ::c_uchar = 252;
-pub const RT_TABLE_DEFAULT: ::c_uchar = 253;
-pub const RT_TABLE_MAIN: ::c_uchar = 254;
-pub const RT_TABLE_LOCAL: ::c_uchar = 255;
-
-pub const RTMSG_OVERRUN: u32 = ::NLMSG_OVERRUN as u32;
-pub const RTMSG_NEWDEVICE: u32 = 0x11;
-pub const RTMSG_DELDEVICE: u32 = 0x12;
-pub const RTMSG_NEWROUTE: u32 = 0x21;
-pub const RTMSG_DELROUTE: u32 = 0x22;
-pub const RTMSG_NEWRULE: u32 = 0x31;
-pub const RTMSG_DELRULE: u32 = 0x32;
-pub const RTMSG_CONTROL: u32 = 0x40;
-pub const RTMSG_AR_FAILED: u32 = 0x51;
-
-pub const MAX_ADDR_LEN: usize = 7;
-pub const ARPD_UPDATE: ::c_ushort = 0x01;
-pub const ARPD_LOOKUP: ::c_ushort = 0x02;
-pub const ARPD_FLUSH: ::c_ushort = 0x03;
-pub const ATF_MAGIC: ::c_int = 0x80;
-
-// userspace compat definitions for RTNLGRP_*
-pub const RTMGRP_LINK: ::c_int = 0x00001;
-pub const RTMGRP_NOTIFY: ::c_int = 0x00002;
-pub const RTMGRP_NEIGH: ::c_int = 0x00004;
-pub const RTMGRP_TC: ::c_int = 0x00008;
-pub const RTMGRP_IPV4_IFADDR: ::c_int = 0x00010;
-pub const RTMGRP_IPV4_MROUTE: ::c_int = 0x00020;
-pub const RTMGRP_IPV4_ROUTE: ::c_int = 0x00040;
-pub const RTMGRP_IPV4_RULE: ::c_int = 0x00080;
-pub const RTMGRP_IPV6_IFADDR: ::c_int = 0x00100;
-pub const RTMGRP_IPV6_MROUTE: ::c_int = 0x00200;
-pub const RTMGRP_IPV6_ROUTE: ::c_int = 0x00400;
-pub const RTMGRP_IPV6_IFINFO: ::c_int = 0x00800;
-pub const RTMGRP_DECnet_IFADDR: ::c_int = 0x01000;
-pub const RTMGRP_DECnet_ROUTE: ::c_int = 0x04000;
-pub const RTMGRP_IPV6_PREFIX: ::c_int = 0x20000;
-
-// enum rtnetlink_groups
-pub const RTNLGRP_NONE: ::c_uint = 0x00;
-pub const RTNLGRP_LINK: ::c_uint = 0x01;
-pub const RTNLGRP_NOTIFY: ::c_uint = 0x02;
-pub const RTNLGRP_NEIGH: ::c_uint = 0x03;
-pub const RTNLGRP_TC: ::c_uint = 0x04;
-pub const RTNLGRP_IPV4_IFADDR: ::c_uint = 0x05;
-pub const RTNLGRP_IPV4_MROUTE: ::c_uint = 0x06;
-pub const RTNLGRP_IPV4_ROUTE: ::c_uint = 0x07;
-pub const RTNLGRP_IPV4_RULE: ::c_uint = 0x08;
-pub const RTNLGRP_IPV6_IFADDR: ::c_uint = 0x09;
-pub const RTNLGRP_IPV6_MROUTE: ::c_uint = 0x0a;
-pub const RTNLGRP_IPV6_ROUTE: ::c_uint = 0x0b;
-pub const RTNLGRP_IPV6_IFINFO: ::c_uint = 0x0c;
-pub const RTNLGRP_DECnet_IFADDR: ::c_uint = 0x0d;
-pub const RTNLGRP_NOP2: ::c_uint = 0x0e;
-pub const RTNLGRP_DECnet_ROUTE: ::c_uint = 0x0f;
-pub const RTNLGRP_DECnet_RULE: ::c_uint = 0x10;
-pub const RTNLGRP_NOP4: ::c_uint = 0x11;
-pub const RTNLGRP_IPV6_PREFIX: ::c_uint = 0x12;
-pub const RTNLGRP_IPV6_RULE: ::c_uint = 0x13;
-pub const RTNLGRP_ND_USEROPT: ::c_uint = 0x14;
-pub const RTNLGRP_PHONET_IFADDR: ::c_uint = 0x15;
-pub const RTNLGRP_PHONET_ROUTE: ::c_uint = 0x16;
-pub const RTNLGRP_DCB: ::c_uint = 0x17;
-pub const RTNLGRP_IPV4_NETCONF: ::c_uint = 0x18;
-pub const RTNLGRP_IPV6_NETCONF: ::c_uint = 0x19;
-pub const RTNLGRP_MDB: ::c_uint = 0x1a;
-pub const RTNLGRP_MPLS_ROUTE: ::c_uint = 0x1b;
-pub const RTNLGRP_NSID: ::c_uint = 0x1c;
-pub const RTNLGRP_MPLS_NETCONF: ::c_uint = 0x1d;
-pub const RTNLGRP_IPV4_MROUTE_R: ::c_uint = 0x1e;
-pub const RTNLGRP_IPV6_MROUTE_R: ::c_uint = 0x1f;
-pub const RTNLGRP_NEXTHOP: ::c_uint = 0x20;
-pub const RTNLGRP_BRVLAN: ::c_uint = 0x21;
-pub const RTNLGRP_MCTP_IFADDR: ::c_uint = 0x22;
-pub const RTNLGRP_TUNNEL: ::c_uint = 0x23;
-pub const RTNLGRP_STATS: ::c_uint = 0x24;
-
-// linux/module.h
-pub const MODULE_INIT_IGNORE_MODVERSIONS: ::c_uint = 0x0001;
-pub const MODULE_INIT_IGNORE_VERMAGIC: ::c_uint = 0x0002;
-
-// linux/net_tstamp.h
-pub const SOF_TIMESTAMPING_TX_HARDWARE: ::c_uint = 1 << 0;
-pub const SOF_TIMESTAMPING_TX_SOFTWARE: ::c_uint = 1 << 1;
-pub const SOF_TIMESTAMPING_RX_HARDWARE: ::c_uint = 1 << 2;
-pub const SOF_TIMESTAMPING_RX_SOFTWARE: ::c_uint = 1 << 3;
-pub const SOF_TIMESTAMPING_SOFTWARE: ::c_uint = 1 << 4;
-pub const SOF_TIMESTAMPING_SYS_HARDWARE: ::c_uint = 1 << 5;
-pub const SOF_TIMESTAMPING_RAW_HARDWARE: ::c_uint = 1 << 6;
-pub const SOF_TIMESTAMPING_OPT_ID: ::c_uint = 1 << 7;
-pub const SOF_TIMESTAMPING_TX_SCHED: ::c_uint = 1 << 8;
-pub const SOF_TIMESTAMPING_TX_ACK: ::c_uint = 1 << 9;
-pub const SOF_TIMESTAMPING_OPT_CMSG: ::c_uint = 1 << 10;
-pub const SOF_TIMESTAMPING_OPT_TSONLY: ::c_uint = 1 << 11;
-pub const SOF_TIMESTAMPING_OPT_STATS: ::c_uint = 1 << 12;
-pub const SOF_TIMESTAMPING_OPT_PKTINFO: ::c_uint = 1 << 13;
-pub const SOF_TIMESTAMPING_OPT_TX_SWHW: ::c_uint = 1 << 14;
-pub const SOF_TXTIME_DEADLINE_MODE: u32 = 1 << 0;
-pub const SOF_TXTIME_REPORT_ERRORS: u32 = 1 << 1;
-
-// linux/if_alg.h
-pub const ALG_SET_KEY: ::c_int = 1;
-pub const ALG_SET_IV: ::c_int = 2;
-pub const ALG_SET_OP: ::c_int = 3;
-pub const ALG_SET_AEAD_ASSOCLEN: ::c_int = 4;
-pub const ALG_SET_AEAD_AUTHSIZE: ::c_int = 5;
-
-pub const ALG_OP_DECRYPT: ::c_int = 0;
-pub const ALG_OP_ENCRYPT: ::c_int = 1;
-
-// include/uapi/linux/udp.h
-pub const UDP_CORK: ::c_int = 1;
-pub const UDP_ENCAP: ::c_int = 100;
-pub const UDP_NO_CHECK6_TX: ::c_int = 101;
-pub const UDP_NO_CHECK6_RX: ::c_int = 102;
-
-// include/uapi/linux/mman.h
-pub const MAP_SHARED_VALIDATE: ::c_int = 0x3;
-
-// include/uapi/asm-generic/mman-common.h
-pub const MAP_FIXED_NOREPLACE: ::c_int = 0x100000;
-pub const MLOCK_ONFAULT: ::c_uint = 0x01;
-
-// uapi/linux/vm_sockets.h
-pub const VMADDR_CID_ANY: ::c_uint = 0xFFFFFFFF;
-pub const VMADDR_CID_HYPERVISOR: ::c_uint = 0;
-#[deprecated(
-    since = "0.2.74",
-    note = "VMADDR_CID_RESERVED is removed since Linux v5.6 and \
-            replaced with VMADDR_CID_LOCAL"
-)]
-pub const VMADDR_CID_RESERVED: ::c_uint = 1;
-pub const VMADDR_CID_LOCAL: ::c_uint = 1;
-pub const VMADDR_CID_HOST: ::c_uint = 2;
-pub const VMADDR_PORT_ANY: ::c_uint = 0xFFFFFFFF;
-
-// uapi/linux/inotify.h
-pub const IN_ACCESS: u32 = 0x0000_0001;
-pub const IN_MODIFY: u32 = 0x0000_0002;
-pub const IN_ATTRIB: u32 = 0x0000_0004;
-pub const IN_CLOSE_WRITE: u32 = 0x0000_0008;
-pub const IN_CLOSE_NOWRITE: u32 = 0x0000_0010;
-pub const IN_CLOSE: u32 = IN_CLOSE_WRITE | IN_CLOSE_NOWRITE;
-pub const IN_OPEN: u32 = 0x0000_0020;
-pub const IN_MOVED_FROM: u32 = 0x0000_0040;
-pub const IN_MOVED_TO: u32 = 0x0000_0080;
-pub const IN_MOVE: u32 = IN_MOVED_FROM | IN_MOVED_TO;
-pub const IN_CREATE: u32 = 0x0000_0100;
-pub const IN_DELETE: u32 = 0x0000_0200;
-pub const IN_DELETE_SELF: u32 = 0x0000_0400;
-pub const IN_MOVE_SELF: u32 = 0x0000_0800;
-pub const IN_UNMOUNT: u32 = 0x0000_2000;
-pub const IN_Q_OVERFLOW: u32 = 0x0000_4000;
-pub const IN_IGNORED: u32 = 0x0000_8000;
-pub const IN_ONLYDIR: u32 = 0x0100_0000;
-pub const IN_DONT_FOLLOW: u32 = 0x0200_0000;
-// pub const IN_EXCL_UNLINK:   u32 = 0x0400_0000;
-
-// linux/keyctl.h
-pub const KEY_SPEC_THREAD_KEYRING: i32 = -1;
-pub const KEY_SPEC_PROCESS_KEYRING: i32 = -2;
-pub const KEY_SPEC_SESSION_KEYRING: i32 = -3;
-pub const KEY_SPEC_USER_KEYRING: i32 = -4;
-pub const KEY_SPEC_USER_SESSION_KEYRING: i32 = -5;
-pub const KEY_SPEC_GROUP_KEYRING: i32 = -6;
-pub const KEY_SPEC_REQKEY_AUTH_KEY: i32 = -7;
-pub const KEY_SPEC_REQUESTOR_KEYRING: i32 = -8;
-
-pub const KEY_REQKEY_DEFL_NO_CHANGE: i32 = -1;
-pub const KEY_REQKEY_DEFL_DEFAULT: i32 = 0;
-pub const KEY_REQKEY_DEFL_THREAD_KEYRING: i32 = 1;
-pub const KEY_REQKEY_DEFL_PROCESS_KEYRING: i32 = 2;
-pub const KEY_REQKEY_DEFL_SESSION_KEYRING: i32 = 3;
-pub const KEY_REQKEY_DEFL_USER_KEYRING: i32 = 4;
-pub const KEY_REQKEY_DEFL_USER_SESSION_KEYRING: i32 = 5;
-pub const KEY_REQKEY_DEFL_GROUP_KEYRING: i32 = 6;
-pub const KEY_REQKEY_DEFL_REQUESTOR_KEYRING: i32 = 7;
-
-pub const KEYCTL_GET_KEYRING_ID: u32 = 0;
-pub const KEYCTL_JOIN_SESSION_KEYRING: u32 = 1;
-pub const KEYCTL_UPDATE: u32 = 2;
-pub const KEYCTL_REVOKE: u32 = 3;
-pub const KEYCTL_CHOWN: u32 = 4;
-pub const KEYCTL_SETPERM: u32 = 5;
-pub const KEYCTL_DESCRIBE: u32 = 6;
-pub const KEYCTL_CLEAR: u32 = 7;
-pub const KEYCTL_LINK: u32 = 8;
-pub const KEYCTL_UNLINK: u32 = 9;
-pub const KEYCTL_SEARCH: u32 = 10;
-pub const KEYCTL_READ: u32 = 11;
-pub const KEYCTL_INSTANTIATE: u32 = 12;
-pub const KEYCTL_NEGATE: u32 = 13;
-pub const KEYCTL_SET_REQKEY_KEYRING: u32 = 14;
-pub const KEYCTL_SET_TIMEOUT: u32 = 15;
-pub const KEYCTL_ASSUME_AUTHORITY: u32 = 16;
-pub const KEYCTL_GET_SECURITY: u32 = 17;
-pub const KEYCTL_SESSION_TO_PARENT: u32 = 18;
-pub const KEYCTL_REJECT: u32 = 19;
-pub const KEYCTL_INSTANTIATE_IOV: u32 = 20;
-pub const KEYCTL_INVALIDATE: u32 = 21;
-pub const KEYCTL_GET_PERSISTENT: u32 = 22;
-
-// pub const IN_MASK_CREATE:   u32 = 0x1000_0000;
-// pub const IN_MASK_ADD:      u32 = 0x2000_0000;
-pub const IN_ISDIR: u32 = 0x4000_0000;
-pub const IN_ONESHOT: u32 = 0x8000_0000;
-
-pub const IN_ALL_EVENTS: u32 = IN_ACCESS
-    | IN_MODIFY
-    | IN_ATTRIB
-    | IN_CLOSE_WRITE
-    | IN_CLOSE_NOWRITE
-    | IN_OPEN
-    | IN_MOVED_FROM
-    | IN_MOVED_TO
-    | IN_DELETE
-    | IN_CREATE
-    | IN_DELETE_SELF
-    | IN_MOVE_SELF;
-
-pub const IN_CLOEXEC: ::c_int = O_CLOEXEC;
-pub const IN_NONBLOCK: ::c_int = O_NONBLOCK;
-
-// uapi/linux/netfilter/nf_tables.h
-pub const NFT_TABLE_MAXNAMELEN: ::c_int = 256;
-pub const NFT_CHAIN_MAXNAMELEN: ::c_int = 256;
-pub const NFT_SET_MAXNAMELEN: ::c_int = 256;
-pub const NFT_OBJ_MAXNAMELEN: ::c_int = 256;
-pub const NFT_USERDATA_MAXLEN: ::c_int = 256;
-
-pub const NFT_REG_VERDICT: ::c_int = 0;
-pub const NFT_REG_1: ::c_int = 1;
-pub const NFT_REG_2: ::c_int = 2;
-pub const NFT_REG_3: ::c_int = 3;
-pub const NFT_REG_4: ::c_int = 4;
-pub const __NFT_REG_MAX: ::c_int = 5;
-pub const NFT_REG32_00: ::c_int = 8;
-pub const NFT_REG32_01: ::c_int = 9;
-pub const NFT_REG32_02: ::c_int = 10;
-pub const NFT_REG32_03: ::c_int = 11;
-pub const NFT_REG32_04: ::c_int = 12;
-pub const NFT_REG32_05: ::c_int = 13;
-pub const NFT_REG32_06: ::c_int = 14;
-pub const NFT_REG32_07: ::c_int = 15;
-pub const NFT_REG32_08: ::c_int = 16;
-pub const NFT_REG32_09: ::c_int = 17;
-pub const NFT_REG32_10: ::c_int = 18;
-pub const NFT_REG32_11: ::c_int = 19;
-pub const NFT_REG32_12: ::c_int = 20;
-pub const NFT_REG32_13: ::c_int = 21;
-pub const NFT_REG32_14: ::c_int = 22;
-pub const NFT_REG32_15: ::c_int = 23;
-
-pub const NFT_REG_SIZE: ::c_int = 16;
-pub const NFT_REG32_SIZE: ::c_int = 4;
-
-pub const NFT_CONTINUE: ::c_int = -1;
-pub const NFT_BREAK: ::c_int = -2;
-pub const NFT_JUMP: ::c_int = -3;
-pub const NFT_GOTO: ::c_int = -4;
-pub const NFT_RETURN: ::c_int = -5;
-
-pub const NFT_MSG_NEWTABLE: ::c_int = 0;
-pub const NFT_MSG_GETTABLE: ::c_int = 1;
-pub const NFT_MSG_DELTABLE: ::c_int = 2;
-pub const NFT_MSG_NEWCHAIN: ::c_int = 3;
-pub const NFT_MSG_GETCHAIN: ::c_int = 4;
-pub const NFT_MSG_DELCHAIN: ::c_int = 5;
-pub const NFT_MSG_NEWRULE: ::c_int = 6;
-pub const NFT_MSG_GETRULE: ::c_int = 7;
-pub const NFT_MSG_DELRULE: ::c_int = 8;
-pub const NFT_MSG_NEWSET: ::c_int = 9;
-pub const NFT_MSG_GETSET: ::c_int = 10;
-pub const NFT_MSG_DELSET: ::c_int = 11;
-pub const NFT_MSG_NEWSETELEM: ::c_int = 12;
-pub const NFT_MSG_GETSETELEM: ::c_int = 13;
-pub const NFT_MSG_DELSETELEM: ::c_int = 14;
-pub const NFT_MSG_NEWGEN: ::c_int = 15;
-pub const NFT_MSG_GETGEN: ::c_int = 16;
-pub const NFT_MSG_TRACE: ::c_int = 17;
-cfg_if! {
-    if #[cfg(not(target_arch = "sparc64"))] {
-        pub const NFT_MSG_NEWOBJ: ::c_int = 18;
-        pub const NFT_MSG_GETOBJ: ::c_int = 19;
-        pub const NFT_MSG_DELOBJ: ::c_int = 20;
-        pub const NFT_MSG_GETOBJ_RESET: ::c_int = 21;
-    }
-}
-pub const NFT_MSG_MAX: ::c_int = 25;
-
-pub const NFT_SET_ANONYMOUS: ::c_int = 0x1;
-pub const NFT_SET_CONSTANT: ::c_int = 0x2;
-pub const NFT_SET_INTERVAL: ::c_int = 0x4;
-pub const NFT_SET_MAP: ::c_int = 0x8;
-pub const NFT_SET_TIMEOUT: ::c_int = 0x10;
-pub const NFT_SET_EVAL: ::c_int = 0x20;
-
-pub const NFT_SET_POL_PERFORMANCE: ::c_int = 0;
-pub const NFT_SET_POL_MEMORY: ::c_int = 1;
-
-pub const NFT_SET_ELEM_INTERVAL_END: ::c_int = 0x1;
-
-pub const NFT_DATA_VALUE: ::c_uint = 0;
-pub const NFT_DATA_VERDICT: ::c_uint = 0xffffff00;
-
-pub const NFT_DATA_RESERVED_MASK: ::c_uint = 0xffffff00;
-
-pub const NFT_DATA_VALUE_MAXLEN: ::c_int = 64;
-
-pub const NFT_BYTEORDER_NTOH: ::c_int = 0;
-pub const NFT_BYTEORDER_HTON: ::c_int = 1;
-
-pub const NFT_CMP_EQ: ::c_int = 0;
-pub const NFT_CMP_NEQ: ::c_int = 1;
-pub const NFT_CMP_LT: ::c_int = 2;
-pub const NFT_CMP_LTE: ::c_int = 3;
-pub const NFT_CMP_GT: ::c_int = 4;
-pub const NFT_CMP_GTE: ::c_int = 5;
-
-pub const NFT_RANGE_EQ: ::c_int = 0;
-pub const NFT_RANGE_NEQ: ::c_int = 1;
-
-pub const NFT_LOOKUP_F_INV: ::c_int = 1 << 0;
-
-pub const NFT_DYNSET_OP_ADD: ::c_int = 0;
-pub const NFT_DYNSET_OP_UPDATE: ::c_int = 1;
-
-pub const NFT_DYNSET_F_INV: ::c_int = 1 << 0;
-
-pub const NFT_PAYLOAD_LL_HEADER: ::c_int = 0;
-pub const NFT_PAYLOAD_NETWORK_HEADER: ::c_int = 1;
-pub const NFT_PAYLOAD_TRANSPORT_HEADER: ::c_int = 2;
-
-pub const NFT_PAYLOAD_CSUM_NONE: ::c_int = 0;
-pub const NFT_PAYLOAD_CSUM_INET: ::c_int = 1;
-
-pub const NFT_META_LEN: ::c_int = 0;
-pub const NFT_META_PROTOCOL: ::c_int = 1;
-pub const NFT_META_PRIORITY: ::c_int = 2;
-pub const NFT_META_MARK: ::c_int = 3;
-pub const NFT_META_IIF: ::c_int = 4;
-pub const NFT_META_OIF: ::c_int = 5;
-pub const NFT_META_IIFNAME: ::c_int = 6;
-pub const NFT_META_OIFNAME: ::c_int = 7;
-pub const NFT_META_IIFTYPE: ::c_int = 8;
-pub const NFT_META_OIFTYPE: ::c_int = 9;
-pub const NFT_META_SKUID: ::c_int = 10;
-pub const NFT_META_SKGID: ::c_int = 11;
-pub const NFT_META_NFTRACE: ::c_int = 12;
-pub const NFT_META_RTCLASSID: ::c_int = 13;
-pub const NFT_META_SECMARK: ::c_int = 14;
-pub const NFT_META_NFPROTO: ::c_int = 15;
-pub const NFT_META_L4PROTO: ::c_int = 16;
-pub const NFT_META_BRI_IIFNAME: ::c_int = 17;
-pub const NFT_META_BRI_OIFNAME: ::c_int = 18;
-pub const NFT_META_PKTTYPE: ::c_int = 19;
-pub const NFT_META_CPU: ::c_int = 20;
-pub const NFT_META_IIFGROUP: ::c_int = 21;
-pub const NFT_META_OIFGROUP: ::c_int = 22;
-pub const NFT_META_CGROUP: ::c_int = 23;
-pub const NFT_META_PRANDOM: ::c_int = 24;
-
-pub const NFT_CT_STATE: ::c_int = 0;
-pub const NFT_CT_DIRECTION: ::c_int = 1;
-pub const NFT_CT_STATUS: ::c_int = 2;
-pub const NFT_CT_MARK: ::c_int = 3;
-pub const NFT_CT_SECMARK: ::c_int = 4;
-pub const NFT_CT_EXPIRATION: ::c_int = 5;
-pub const NFT_CT_HELPER: ::c_int = 6;
-pub const NFT_CT_L3PROTOCOL: ::c_int = 7;
-pub const NFT_CT_SRC: ::c_int = 8;
-pub const NFT_CT_DST: ::c_int = 9;
-pub const NFT_CT_PROTOCOL: ::c_int = 10;
-pub const NFT_CT_PROTO_SRC: ::c_int = 11;
-pub const NFT_CT_PROTO_DST: ::c_int = 12;
-pub const NFT_CT_LABELS: ::c_int = 13;
-pub const NFT_CT_PKTS: ::c_int = 14;
-pub const NFT_CT_BYTES: ::c_int = 15;
-
-pub const NFT_LIMIT_PKTS: ::c_int = 0;
-pub const NFT_LIMIT_PKT_BYTES: ::c_int = 1;
-
-pub const NFT_LIMIT_F_INV: ::c_int = 1 << 0;
-
-pub const NFT_QUEUE_FLAG_BYPASS: ::c_int = 0x01;
-pub const NFT_QUEUE_FLAG_CPU_FANOUT: ::c_int = 0x02;
-pub const NFT_QUEUE_FLAG_MASK: ::c_int = 0x03;
-
-pub const NFT_QUOTA_F_INV: ::c_int = 1 << 0;
-
-pub const NFT_REJECT_ICMP_UNREACH: ::c_int = 0;
-pub const NFT_REJECT_TCP_RST: ::c_int = 1;
-pub const NFT_REJECT_ICMPX_UNREACH: ::c_int = 2;
-
-pub const NFT_REJECT_ICMPX_NO_ROUTE: ::c_int = 0;
-pub const NFT_REJECT_ICMPX_PORT_UNREACH: ::c_int = 1;
-pub const NFT_REJECT_ICMPX_HOST_UNREACH: ::c_int = 2;
-pub const NFT_REJECT_ICMPX_ADMIN_PROHIBITED: ::c_int = 3;
-
-pub const NFT_NAT_SNAT: ::c_int = 0;
-pub const NFT_NAT_DNAT: ::c_int = 1;
-
-pub const NFT_TRACETYPE_UNSPEC: ::c_int = 0;
-pub const NFT_TRACETYPE_POLICY: ::c_int = 1;
-pub const NFT_TRACETYPE_RETURN: ::c_int = 2;
-pub const NFT_TRACETYPE_RULE: ::c_int = 3;
-
-pub const NFT_NG_INCREMENTAL: ::c_int = 0;
-pub const NFT_NG_RANDOM: ::c_int = 1;
-
-// linux/input.h
-pub const FF_MAX: ::__u16 = 0x7f;
-pub const FF_CNT: usize = FF_MAX as usize + 1;
-
-// linux/input-event-codes.h
-pub const INPUT_PROP_MAX: ::__u16 = 0x1f;
-pub const INPUT_PROP_CNT: usize = INPUT_PROP_MAX as usize + 1;
-pub const EV_MAX: ::__u16 = 0x1f;
-pub const EV_CNT: usize = EV_MAX as usize + 1;
-pub const SYN_MAX: ::__u16 = 0xf;
-pub const SYN_CNT: usize = SYN_MAX as usize + 1;
-pub const KEY_MAX: ::__u16 = 0x2ff;
-pub const KEY_CNT: usize = KEY_MAX as usize + 1;
-pub const REL_MAX: ::__u16 = 0x0f;
-pub const REL_CNT: usize = REL_MAX as usize + 1;
-pub const ABS_MAX: ::__u16 = 0x3f;
-pub const ABS_CNT: usize = ABS_MAX as usize + 1;
-pub const SW_MAX: ::__u16 = 0x10;
-pub const SW_CNT: usize = SW_MAX as usize + 1;
-pub const MSC_MAX: ::__u16 = 0x07;
-pub const MSC_CNT: usize = MSC_MAX as usize + 1;
-pub const LED_MAX: ::__u16 = 0x0f;
-pub const LED_CNT: usize = LED_MAX as usize + 1;
-pub const REP_MAX: ::__u16 = 0x01;
-pub const REP_CNT: usize = REP_MAX as usize + 1;
-pub const SND_MAX: ::__u16 = 0x07;
-pub const SND_CNT: usize = SND_MAX as usize + 1;
-
-// linux/uinput.h
-pub const UINPUT_VERSION: ::c_uint = 5;
-pub const UINPUT_MAX_NAME_SIZE: usize = 80;
-
-// uapi/linux/fanotify.h
-pub const FAN_ACCESS: u64 = 0x0000_0001;
-pub const FAN_MODIFY: u64 = 0x0000_0002;
-pub const FAN_CLOSE_WRITE: u64 = 0x0000_0008;
-pub const FAN_CLOSE_NOWRITE: u64 = 0x0000_0010;
-pub const FAN_OPEN: u64 = 0x0000_0020;
-
-pub const FAN_Q_OVERFLOW: u64 = 0x0000_4000;
-
-pub const FAN_OPEN_PERM: u64 = 0x0001_0000;
-pub const FAN_ACCESS_PERM: u64 = 0x0002_0000;
-
-pub const FAN_ONDIR: u64 = 0x4000_0000;
-
-pub const FAN_EVENT_ON_CHILD: u64 = 0x0800_0000;
-
-pub const FAN_CLOSE: u64 = FAN_CLOSE_WRITE | FAN_CLOSE_NOWRITE;
-
-pub const FAN_CLOEXEC: ::c_uint = 0x0000_0001;
-pub const FAN_NONBLOCK: ::c_uint = 0x0000_0002;
-
-pub const FAN_CLASS_NOTIF: ::c_uint = 0x0000_0000;
-pub const FAN_CLASS_CONTENT: ::c_uint = 0x0000_0004;
-pub const FAN_CLASS_PRE_CONTENT: ::c_uint = 0x0000_0008;
-
-pub const FAN_UNLIMITED_QUEUE: ::c_uint = 0x0000_0010;
-pub const FAN_UNLIMITED_MARKS: ::c_uint = 0x0000_0020;
-
-pub const FAN_MARK_ADD: ::c_uint = 0x0000_0001;
-pub const FAN_MARK_REMOVE: ::c_uint = 0x0000_0002;
-pub const FAN_MARK_DONT_FOLLOW: ::c_uint = 0x0000_0004;
-pub const FAN_MARK_ONLYDIR: ::c_uint = 0x0000_0008;
-pub const FAN_MARK_IGNORED_MASK: ::c_uint = 0x0000_0020;
-pub const FAN_MARK_IGNORED_SURV_MODIFY: ::c_uint = 0x0000_0040;
-pub const FAN_MARK_FLUSH: ::c_uint = 0x0000_0080;
-
-pub const FANOTIFY_METADATA_VERSION: u8 = 3;
-
-pub const FAN_ALLOW: u32 = 0x01;
-pub const FAN_DENY: u32 = 0x02;
-
-pub const FAN_NOFD: ::c_int = -1;
-
-pub const FUTEX_WAIT: ::c_int = 0;
-pub const FUTEX_WAKE: ::c_int = 1;
-pub const FUTEX_FD: ::c_int = 2;
-pub const FUTEX_REQUEUE: ::c_int = 3;
-pub const FUTEX_CMP_REQUEUE: ::c_int = 4;
-pub const FUTEX_WAKE_OP: ::c_int = 5;
-pub const FUTEX_LOCK_PI: ::c_int = 6;
-pub const FUTEX_UNLOCK_PI: ::c_int = 7;
-pub const FUTEX_TRYLOCK_PI: ::c_int = 8;
-pub const FUTEX_WAIT_BITSET: ::c_int = 9;
-pub const FUTEX_WAKE_BITSET: ::c_int = 10;
-pub const FUTEX_WAIT_REQUEUE_PI: ::c_int = 11;
-pub const FUTEX_CMP_REQUEUE_PI: ::c_int = 12;
-pub const FUTEX_LOCK_PI2: ::c_int = 13;
-
-pub const FUTEX_PRIVATE_FLAG: ::c_int = 128;
-pub const FUTEX_CLOCK_REALTIME: ::c_int = 256;
-pub const FUTEX_CMD_MASK: ::c_int = !(FUTEX_PRIVATE_FLAG | FUTEX_CLOCK_REALTIME);
-
-// linux/reboot.h
-pub const LINUX_REBOOT_MAGIC1: ::c_int = 0xfee1dead;
-pub const LINUX_REBOOT_MAGIC2: ::c_int = 672274793;
-pub const LINUX_REBOOT_MAGIC2A: ::c_int = 85072278;
-pub const LINUX_REBOOT_MAGIC2B: ::c_int = 369367448;
-pub const LINUX_REBOOT_MAGIC2C: ::c_int = 537993216;
-
-pub const LINUX_REBOOT_CMD_RESTART: ::c_int = 0x01234567;
-pub const LINUX_REBOOT_CMD_HALT: ::c_int = 0xCDEF0123;
-pub const LINUX_REBOOT_CMD_CAD_ON: ::c_int = 0x89ABCDEF;
-pub const LINUX_REBOOT_CMD_CAD_OFF: ::c_int = 0x00000000;
-pub const LINUX_REBOOT_CMD_POWER_OFF: ::c_int = 0x4321FEDC;
-pub const LINUX_REBOOT_CMD_RESTART2: ::c_int = 0xA1B2C3D4;
-pub const LINUX_REBOOT_CMD_SW_SUSPEND: ::c_int = 0xD000FCE2;
-pub const LINUX_REBOOT_CMD_KEXEC: ::c_int = 0x45584543;
-
-pub const REG_EXTENDED: ::c_int = 1;
-pub const REG_ICASE: ::c_int = 2;
-pub const REG_NEWLINE: ::c_int = 4;
-pub const REG_NOSUB: ::c_int = 8;
-
-pub const REG_NOTBOL: ::c_int = 1;
-pub const REG_NOTEOL: ::c_int = 2;
-
-pub const REG_ENOSYS: ::c_int = -1;
-pub const REG_NOMATCH: ::c_int = 1;
-pub const REG_BADPAT: ::c_int = 2;
-pub const REG_ECOLLATE: ::c_int = 3;
-pub const REG_ECTYPE: ::c_int = 4;
-pub const REG_EESCAPE: ::c_int = 5;
-pub const REG_ESUBREG: ::c_int = 6;
-pub const REG_EBRACK: ::c_int = 7;
-pub const REG_EPAREN: ::c_int = 8;
-pub const REG_EBRACE: ::c_int = 9;
-pub const REG_BADBR: ::c_int = 10;
-pub const REG_ERANGE: ::c_int = 11;
-pub const REG_ESPACE: ::c_int = 12;
-pub const REG_BADRPT: ::c_int = 13;
-
-// linux/errqueue.h
-pub const SO_EE_ORIGIN_NONE: u8 = 0;
-pub const SO_EE_ORIGIN_LOCAL: u8 = 1;
-pub const SO_EE_ORIGIN_ICMP: u8 = 2;
-pub const SO_EE_ORIGIN_ICMP6: u8 = 3;
-pub const SO_EE_ORIGIN_TXSTATUS: u8 = 4;
-pub const SO_EE_ORIGIN_TIMESTAMPING: u8 = SO_EE_ORIGIN_TXSTATUS;
-
-// errno.h
-pub const EPERM: ::c_int = 1;
-pub const ENOENT: ::c_int = 2;
-pub const ESRCH: ::c_int = 3;
-pub const EINTR: ::c_int = 4;
-pub const EIO: ::c_int = 5;
-pub const ENXIO: ::c_int = 6;
-pub const E2BIG: ::c_int = 7;
-pub const ENOEXEC: ::c_int = 8;
-pub const EBADF: ::c_int = 9;
-pub const ECHILD: ::c_int = 10;
-pub const EAGAIN: ::c_int = 11;
-pub const ENOMEM: ::c_int = 12;
-pub const EACCES: ::c_int = 13;
-pub const EFAULT: ::c_int = 14;
-pub const ENOTBLK: ::c_int = 15;
-pub const EBUSY: ::c_int = 16;
-pub const EEXIST: ::c_int = 17;
-pub const EXDEV: ::c_int = 18;
-pub const ENODEV: ::c_int = 19;
-pub const ENOTDIR: ::c_int = 20;
-pub const EISDIR: ::c_int = 21;
-pub const EINVAL: ::c_int = 22;
-pub const ENFILE: ::c_int = 23;
-pub const EMFILE: ::c_int = 24;
-pub const ENOTTY: ::c_int = 25;
-pub const ETXTBSY: ::c_int = 26;
-pub const EFBIG: ::c_int = 27;
-pub const ENOSPC: ::c_int = 28;
-pub const ESPIPE: ::c_int = 29;
-pub const EROFS: ::c_int = 30;
-pub const EMLINK: ::c_int = 31;
-pub const EPIPE: ::c_int = 32;
-pub const EDOM: ::c_int = 33;
-pub const ERANGE: ::c_int = 34;
-pub const EWOULDBLOCK: ::c_int = EAGAIN;
-
-// linux/can.h
-pub const CAN_EFF_FLAG: canid_t = 0x80000000;
-pub const CAN_RTR_FLAG: canid_t = 0x40000000;
-pub const CAN_ERR_FLAG: canid_t = 0x20000000;
-pub const CAN_SFF_MASK: canid_t = 0x000007FF;
-pub const CAN_EFF_MASK: canid_t = 0x1FFFFFFF;
-pub const CAN_ERR_MASK: canid_t = 0x1FFFFFFF;
-
-pub const CAN_SFF_ID_BITS: ::c_int = 11;
-pub const CAN_EFF_ID_BITS: ::c_int = 29;
-
-pub const CAN_MAX_DLC: ::c_int = 8;
-pub const CAN_MAX_DLEN: usize = 8;
-pub const CANFD_MAX_DLC: ::c_int = 15;
-pub const CANFD_MAX_DLEN: usize = 64;
-
-pub const CANFD_BRS: ::c_int = 0x01;
-pub const CANFD_ESI: ::c_int = 0x02;
-
-cfg_if! {
-    if #[cfg(libc_align)] {
-        pub const CAN_MTU: usize = ::mem::size_of::<can_frame>();
-        pub const CANFD_MTU: usize = ::mem::size_of::<canfd_frame>();
-    }
-}
-
-pub const CAN_RAW: ::c_int = 1;
-pub const CAN_BCM: ::c_int = 2;
-pub const CAN_TP16: ::c_int = 3;
-pub const CAN_TP20: ::c_int = 4;
-pub const CAN_MCNET: ::c_int = 5;
-pub const CAN_ISOTP: ::c_int = 6;
-pub const CAN_J1939: ::c_int = 7;
-pub const CAN_NPROTO: ::c_int = 8;
-
-pub const SOL_CAN_BASE: ::c_int = 100;
-
-pub const CAN_INV_FILTER: canid_t = 0x20000000;
-pub const CAN_RAW_FILTER_MAX: ::c_int = 512;
-
-// linux/can/raw.h
-pub const SOL_CAN_RAW: ::c_int = SOL_CAN_BASE + CAN_RAW;
-pub const CAN_RAW_FILTER: ::c_int = 1;
-pub const CAN_RAW_ERR_FILTER: ::c_int = 2;
-pub const CAN_RAW_LOOPBACK: ::c_int = 3;
-pub const CAN_RAW_RECV_OWN_MSGS: ::c_int = 4;
-pub const CAN_RAW_FD_FRAMES: ::c_int = 5;
-pub const CAN_RAW_JOIN_FILTERS: ::c_int = 6;
-
-// linux/can/j1939.h
-pub const SOL_CAN_J1939: ::c_int = SOL_CAN_BASE + CAN_J1939;
-
-pub const J1939_MAX_UNICAST_ADDR: ::c_uchar = 0xfd;
-pub const J1939_IDLE_ADDR: ::c_uchar = 0xfe;
-pub const J1939_NO_ADDR: ::c_uchar = 0xff;
-pub const J1939_NO_NAME: ::c_ulong = 0;
-pub const J1939_PGN_REQUEST: ::c_uint = 0x0ea00;
-pub const J1939_PGN_ADDRESS_CLAIMED: ::c_uint = 0x0ee00;
-pub const J1939_PGN_ADDRESS_COMMANDED: ::c_uint = 0x0fed8;
-pub const J1939_PGN_PDU1_MAX: ::c_uint = 0x3ff00;
-pub const J1939_PGN_MAX: ::c_uint = 0x3ffff;
-pub const J1939_NO_PGN: ::c_uint = 0x40000;
-
-pub const SO_J1939_FILTER: ::c_int = 1;
-pub const SO_J1939_PROMISC: ::c_int = 2;
-pub const SO_J1939_SEND_PRIO: ::c_int = 3;
-pub const SO_J1939_ERRQUEUE: ::c_int = 4;
-
-pub const SCM_J1939_DEST_ADDR: ::c_int = 1;
-pub const SCM_J1939_DEST_NAME: ::c_int = 2;
-pub const SCM_J1939_PRIO: ::c_int = 3;
-pub const SCM_J1939_ERRQUEUE: ::c_int = 4;
-
-pub const J1939_NLA_PAD: ::c_int = 0;
-pub const J1939_NLA_BYTES_ACKED: ::c_int = 1;
-pub const J1939_NLA_TOTAL_SIZE: ::c_int = 2;
-pub const J1939_NLA_PGN: ::c_int = 3;
-pub const J1939_NLA_SRC_NAME: ::c_int = 4;
-pub const J1939_NLA_DEST_NAME: ::c_int = 5;
-pub const J1939_NLA_SRC_ADDR: ::c_int = 6;
-pub const J1939_NLA_DEST_ADDR: ::c_int = 7;
-
-pub const J1939_EE_INFO_NONE: ::c_int = 0;
-pub const J1939_EE_INFO_TX_ABORT: ::c_int = 1;
-pub const J1939_EE_INFO_RX_RTS: ::c_int = 2;
-pub const J1939_EE_INFO_RX_DPO: ::c_int = 3;
-pub const J1939_EE_INFO_RX_ABORT: ::c_int = 4;
-
-pub const J1939_FILTER_MAX: ::c_int = 512;
-
-f! {
-    pub fn NLA_ALIGN(len: ::c_int) -> ::c_int {
-        return ((len) + NLA_ALIGNTO - 1) & !(NLA_ALIGNTO - 1)
-    }
-
-    pub fn CMSG_NXTHDR(mhdr: *const msghdr,
-                       cmsg: *const cmsghdr) -> *mut cmsghdr {
-        if ((*cmsg).cmsg_len as usize) < ::mem::size_of::<cmsghdr>() {
-            return 0 as *mut cmsghdr;
-        };
-        let next = (cmsg as usize +
-                    super::CMSG_ALIGN((*cmsg).cmsg_len as usize))
-            as *mut cmsghdr;
-        let max = (*mhdr).msg_control as usize
-            + (*mhdr).msg_controllen as usize;
-        if (next.offset(1)) as usize > max ||
-            next as usize + super::CMSG_ALIGN((*next).cmsg_len as usize) > max
-        {
-            0 as *mut cmsghdr
-        } else {
-            next as *mut cmsghdr
-        }
-    }
-
-    pub fn CPU_ALLOC_SIZE(count: ::c_int) -> ::size_t {
-        let _dummy: cpu_set_t = ::mem::zeroed();
-        let size_in_bits = 8 * ::mem::size_of_val(&_dummy.bits[0]);
-        ((count as ::size_t + size_in_bits - 1) / 8) as ::size_t
-    }
-
-    pub fn CPU_ZERO(cpuset: &mut cpu_set_t) -> () {
-        for slot in cpuset.bits.iter_mut() {
-            *slot = 0;
-        }
-    }
-
-    pub fn CPU_SET(cpu: usize, cpuset: &mut cpu_set_t) -> () {
-        let size_in_bits
-            = 8 * ::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc
-        let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits);
-        cpuset.bits[idx] |= 1 << offset;
-        ()
-    }
-
-    pub fn CPU_CLR(cpu: usize, cpuset: &mut cpu_set_t) -> () {
-        let size_in_bits
-            = 8 * ::mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc
-        let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits);
-        cpuset.bits[idx] &= !(1 << offset);
-        ()
-    }
-
-    pub fn CPU_ISSET(cpu: usize, cpuset: &cpu_set_t) -> bool {
-        let size_in_bits = 8 * ::mem::size_of_val(&cpuset.bits[0]);
-        let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits);
-        0 != (cpuset.bits[idx] & (1 << offset))
-    }
-
-    pub fn CPU_COUNT_S(size: usize, cpuset: &cpu_set_t) -> ::c_int {
-        let mut s: u32 = 0;
-        let size_of_mask = ::mem::size_of_val(&cpuset.bits[0]);
-        for i in cpuset.bits[..(size / size_of_mask)].iter() {
-            s += i.count_ones();
-        };
-        s as ::c_int
-    }
-
-    pub fn CPU_COUNT(cpuset: &cpu_set_t) -> ::c_int {
-        CPU_COUNT_S(::mem::size_of::<cpu_set_t>(), cpuset)
-    }
-
-    pub fn CPU_EQUAL(set1: &cpu_set_t, set2: &cpu_set_t) -> bool {
-        set1.bits == set2.bits
-    }
-
-    pub fn major(dev: ::dev_t) -> ::c_uint {
-        let mut major = 0;
-        major |= (dev & 0x00000000000fff00) >> 8;
-        major |= (dev & 0xfffff00000000000) >> 32;
-        major as ::c_uint
-    }
-
-    pub fn minor(dev: ::dev_t) -> ::c_uint {
-        let mut minor = 0;
-        minor |= (dev & 0x00000000000000ff) >> 0;
-        minor |= (dev & 0x00000ffffff00000) >> 12;
-        minor as ::c_uint
-    }
-
-    pub fn IPTOS_TOS(tos: u8) -> u8 {
-        tos & IPTOS_TOS_MASK
-    }
-
-    pub fn IPTOS_PREC(tos: u8) -> u8 {
-        tos & IPTOS_PREC_MASK
-    }
-
-    pub fn RT_TOS(tos: u8) -> u8 {
-        tos & ::IPTOS_TOS_MASK
-    }
-
-    pub fn RT_ADDRCLASS(flags: u32) -> u32 {
-        flags >> 23
-    }
-
-    pub fn RT_LOCALADDR(flags: u32) -> bool {
-        (flags & RTF_ADDRCLASSMASK) == (RTF_LOCAL | RTF_INTERFACE)
-    }
-
-    pub fn SO_EE_OFFENDER(ee: *const ::sock_extended_err) -> *mut ::sockaddr {
-        ee.offset(1) as *mut ::sockaddr
-    }
-
-    pub fn BPF_RVAL(code: ::__u32) -> ::__u32 {
-        code & 0x18
-    }
-
-    pub fn BPF_MISCOP(code: ::__u32) -> ::__u32 {
-        code & 0xf8
-    }
-
-    pub fn BPF_STMT(code: ::__u16, k: ::__u32) -> sock_filter {
-        sock_filter{code: code, jt: 0, jf: 0, k: k}
-    }
-
-    pub fn BPF_JUMP(code: ::__u16, k: ::__u32, jt: ::__u8, jf: ::__u8) -> sock_filter {
-        sock_filter{code: code, jt: jt, jf: jf, k: k}
-    }
-}
-
-safe_f! {
-    pub {const} fn makedev(major: ::c_uint, minor: ::c_uint) -> ::dev_t {
-        let major = major as ::dev_t;
-        let minor = minor as ::dev_t;
-        let mut dev = 0;
-        dev |= (major & 0x00000fff) << 8;
-        dev |= (major & 0xfffff000) << 32;
-        dev |= (minor & 0x000000ff) << 0;
-        dev |= (minor & 0xffffff00) << 12;
-        dev
-    }
-}
-
-cfg_if! {
-    if #[cfg(not(target_env = "uclibc"))] {
-        extern "C" {
-            pub fn aio_read(aiocbp: *mut aiocb) -> ::c_int;
-            pub fn aio_write(aiocbp: *mut aiocb) -> ::c_int;
-            pub fn aio_fsync(op: ::c_int, aiocbp: *mut aiocb) -> ::c_int;
-            pub fn aio_error(aiocbp: *const aiocb) -> ::c_int;
-            pub fn aio_return(aiocbp: *mut aiocb) -> ::ssize_t;
-            pub fn aio_suspend(
-                aiocb_list: *const *const aiocb,
-                nitems: ::c_int,
-                timeout: *const ::timespec,
-            ) -> ::c_int;
-            pub fn aio_cancel(fd: ::c_int, aiocbp: *mut aiocb) -> ::c_int;
-            pub fn lio_listio(
-                mode: ::c_int,
-                aiocb_list: *const *mut aiocb,
-                nitems: ::c_int,
-                sevp: *mut ::sigevent,
-            ) -> ::c_int;
-            pub fn pwritev(
-                fd: ::c_int,
-                iov: *const ::iovec,
-                iovcnt: ::c_int,
-                offset: ::off_t,
-            ) -> ::ssize_t;
-            pub fn preadv(
-                fd: ::c_int,
-                iov: *const ::iovec,
-                iovcnt: ::c_int,
-                offset: ::off_t,
-            ) -> ::ssize_t;
-            pub fn getnameinfo(
-                sa: *const ::sockaddr,
-                salen: ::socklen_t,
-                host: *mut ::c_char,
-                hostlen: ::socklen_t,
-                serv: *mut ::c_char,
-                sevlen: ::socklen_t,
-                flags: ::c_int,
-            ) -> ::c_int;
-            pub fn getloadavg(
-                loadavg: *mut ::c_double,
-                nelem: ::c_int
-            ) -> ::c_int;
-            pub fn process_vm_readv(
-                pid: ::pid_t,
-                local_iov: *const ::iovec,
-                liovcnt: ::c_ulong,
-                remote_iov: *const ::iovec,
-                riovcnt: ::c_ulong,
-                flags: ::c_ulong,
-            ) -> isize;
-            pub fn process_vm_writev(
-                pid: ::pid_t,
-                local_iov: *const ::iovec,
-                liovcnt: ::c_ulong,
-                remote_iov: *const ::iovec,
-                riovcnt: ::c_ulong,
-                flags: ::c_ulong,
-            ) -> isize;
-            pub fn futimes(
-                fd: ::c_int,
-                times: *const ::timeval
-            ) -> ::c_int;
-        }
-    }
-}
-
-extern "C" {
-    #[cfg_attr(not(target_env = "musl"), link_name = "__xpg_strerror_r")]
-    pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int;
-
-    pub fn abs(i: ::c_int) -> ::c_int;
-    pub fn atof(s: *const ::c_char) -> ::c_double;
-    pub fn labs(i: ::c_long) -> ::c_long;
-    pub fn rand() -> ::c_int;
-    pub fn srand(seed: ::c_uint);
-
-    pub fn drand48() -> ::c_double;
-    pub fn erand48(xseed: *mut ::c_ushort) -> ::c_double;
-    pub fn lrand48() -> ::c_long;
-    pub fn nrand48(xseed: *mut ::c_ushort) -> ::c_long;
-    pub fn mrand48() -> ::c_long;
-    pub fn jrand48(xseed: *mut ::c_ushort) -> ::c_long;
-    pub fn srand48(seed: ::c_long);
-    pub fn seed48(xseed: *mut ::c_ushort) -> *mut ::c_ushort;
-    pub fn lcong48(p: *mut ::c_ushort);
-
-    pub fn lutimes(file: *const ::c_char, times: *const ::timeval) -> ::c_int;
-
-    pub fn setpwent();
-    pub fn endpwent();
-    pub fn getpwent() -> *mut passwd;
-    pub fn setgrent();
-    pub fn endgrent();
-    pub fn getgrent() -> *mut ::group;
-    pub fn setspent();
-    pub fn endspent();
-    pub fn getspent() -> *mut spwd;
-
-    pub fn getspnam(name: *const ::c_char) -> *mut spwd;
-    // Only `getspnam_r` is implemented for musl, out of all of the reenterant
-    // functions from `shadow.h`.
-    // https://git.musl-libc.org/cgit/musl/tree/include/shadow.h
-    pub fn getspnam_r(
-        name: *const ::c_char,
-        spbuf: *mut spwd,
-        buf: *mut ::c_char,
-        buflen: ::size_t,
-        spbufp: *mut *mut spwd,
-    ) -> ::c_int;
-
-    pub fn shm_open(name: *const c_char, oflag: ::c_int, mode: mode_t) -> ::c_int;
-
-    // System V IPC
-    pub fn shmget(key: ::key_t, size: ::size_t, shmflg: ::c_int) -> ::c_int;
-    pub fn shmat(shmid: ::c_int, shmaddr: *const ::c_void, shmflg: ::c_int) -> *mut ::c_void;
-    pub fn shmdt(shmaddr: *const ::c_void) -> ::c_int;
-    pub fn shmctl(shmid: ::c_int, cmd: ::c_int, buf: *mut ::shmid_ds) -> ::c_int;
-    pub fn ftok(pathname: *const ::c_char, proj_id: ::c_int) -> ::key_t;
-    pub fn semget(key: ::key_t, nsems: ::c_int, semflag: ::c_int) -> ::c_int;
-    pub fn semop(semid: ::c_int, sops: *mut ::sembuf, nsops: ::size_t) -> ::c_int;
-    pub fn semctl(semid: ::c_int, semnum: ::c_int, cmd: ::c_int, ...) -> ::c_int;
-    pub fn msgctl(msqid: ::c_int, cmd: ::c_int, buf: *mut msqid_ds) -> ::c_int;
-    pub fn msgget(key: ::key_t, msgflg: ::c_int) -> ::c_int;
-    pub fn msgrcv(
-        msqid: ::c_int,
-        msgp: *mut ::c_void,
-        msgsz: ::size_t,
-        msgtyp: ::c_long,
-        msgflg: ::c_int,
-    ) -> ::ssize_t;
-    pub fn msgsnd(
-        msqid: ::c_int,
-        msgp: *const ::c_void,
-        msgsz: ::size_t,
-        msgflg: ::c_int,
-    ) -> ::c_int;
-
-    pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int;
-    pub fn __errno_location() -> *mut ::c_int;
-
-    pub fn fopen64(filename: *const c_char, mode: *const c_char) -> *mut ::FILE;
-    pub fn freopen64(
-        filename: *const c_char,
-        mode: *const c_char,
-        file: *mut ::FILE,
-    ) -> *mut ::FILE;
-    pub fn tmpfile64() -> *mut ::FILE;
-    pub fn fgetpos64(stream: *mut ::FILE, ptr: *mut fpos64_t) -> ::c_int;
-    pub fn fsetpos64(stream: *mut ::FILE, ptr: *const fpos64_t) -> ::c_int;
-    pub fn fseeko64(stream: *mut ::FILE, offset: ::off64_t, whence: ::c_int) -> ::c_int;
-    pub fn ftello64(stream: *mut ::FILE) -> ::off64_t;
-    pub fn fallocate(fd: ::c_int, mode: ::c_int, offset: ::off_t, len: ::off_t) -> ::c_int;
-    pub fn fallocate64(fd: ::c_int, mode: ::c_int, offset: ::off64_t, len: ::off64_t) -> ::c_int;
-    pub fn posix_fallocate(fd: ::c_int, offset: ::off_t, len: ::off_t) -> ::c_int;
-    pub fn posix_fallocate64(fd: ::c_int, offset: ::off64_t, len: ::off64_t) -> ::c_int;
-    pub fn readahead(fd: ::c_int, offset: ::off64_t, count: ::size_t) -> ::ssize_t;
-    pub fn getxattr(
-        path: *const c_char,
-        name: *const c_char,
-        value: *mut ::c_void,
-        size: ::size_t,
-    ) -> ::ssize_t;
-    pub fn lgetxattr(
-        path: *const c_char,
-        name: *const c_char,
-        value: *mut ::c_void,
-        size: ::size_t,
-    ) -> ::ssize_t;
-    pub fn fgetxattr(
-        filedes: ::c_int,
-        name: *const c_char,
-        value: *mut ::c_void,
-        size: ::size_t,
-    ) -> ::ssize_t;
-    pub fn setxattr(
-        path: *const c_char,
-        name: *const c_char,
-        value: *const ::c_void,
-        size: ::size_t,
-        flags: ::c_int,
-    ) -> ::c_int;
-    pub fn lsetxattr(
-        path: *const c_char,
-        name: *const c_char,
-        value: *const ::c_void,
-        size: ::size_t,
-        flags: ::c_int,
-    ) -> ::c_int;
-    pub fn fsetxattr(
-        filedes: ::c_int,
-        name: *const c_char,
-        value: *const ::c_void,
-        size: ::size_t,
-        flags: ::c_int,
-    ) -> ::c_int;
-    pub fn listxattr(path: *const c_char, list: *mut c_char, size: ::size_t) -> ::ssize_t;
-    pub fn llistxattr(path: *const c_char, list: *mut c_char, size: ::size_t) -> ::ssize_t;
-    pub fn flistxattr(filedes: ::c_int, list: *mut c_char, size: ::size_t) -> ::ssize_t;
-    pub fn removexattr(path: *const c_char, name: *const c_char) -> ::c_int;
-    pub fn lremovexattr(path: *const c_char, name: *const c_char) -> ::c_int;
-    pub fn fremovexattr(filedes: ::c_int, name: *const c_char) -> ::c_int;
-    pub fn signalfd(fd: ::c_int, mask: *const ::sigset_t, flags: ::c_int) -> ::c_int;
-    pub fn timerfd_create(clockid: ::clockid_t, flags: ::c_int) -> ::c_int;
-    pub fn timerfd_gettime(fd: ::c_int, curr_value: *mut itimerspec) -> ::c_int;
-    pub fn timerfd_settime(
-        fd: ::c_int,
-        flags: ::c_int,
-        new_value: *const itimerspec,
-        old_value: *mut itimerspec,
-    ) -> ::c_int;
-    pub fn quotactl(
-        cmd: ::c_int,
-        special: *const ::c_char,
-        id: ::c_int,
-        data: *mut ::c_char,
-    ) -> ::c_int;
-    pub fn mq_open(name: *const ::c_char, oflag: ::c_int, ...) -> ::mqd_t;
-    pub fn mq_close(mqd: ::mqd_t) -> ::c_int;
-    pub fn mq_unlink(name: *const ::c_char) -> ::c_int;
-    pub fn mq_receive(
-        mqd: ::mqd_t,
-        msg_ptr: *mut ::c_char,
-        msg_len: ::size_t,
-        msg_prio: *mut ::c_uint,
-    ) -> ::ssize_t;
-    pub fn mq_timedreceive(
-        mqd: ::mqd_t,
-        msg_ptr: *mut ::c_char,
-        msg_len: ::size_t,
-        msg_prio: *mut ::c_uint,
-        abs_timeout: *const ::timespec,
-    ) -> ::ssize_t;
-    pub fn mq_send(
-        mqd: ::mqd_t,
-        msg_ptr: *const ::c_char,
-        msg_len: ::size_t,
-        msg_prio: ::c_uint,
-    ) -> ::c_int;
-    pub fn mq_timedsend(
-        mqd: ::mqd_t,
-        msg_ptr: *const ::c_char,
-        msg_len: ::size_t,
-        msg_prio: ::c_uint,
-        abs_timeout: *const ::timespec,
-    ) -> ::c_int;
-    pub fn mq_getattr(mqd: ::mqd_t, attr: *mut ::mq_attr) -> ::c_int;
-    pub fn mq_setattr(mqd: ::mqd_t, newattr: *const ::mq_attr, oldattr: *mut ::mq_attr) -> ::c_int;
-    pub fn epoll_pwait(
-        epfd: ::c_int,
-        events: *mut ::epoll_event,
-        maxevents: ::c_int,
-        timeout: ::c_int,
-        sigmask: *const ::sigset_t,
-    ) -> ::c_int;
-    pub fn dup3(oldfd: ::c_int, newfd: ::c_int, flags: ::c_int) -> ::c_int;
-    pub fn mkostemp(template: *mut ::c_char, flags: ::c_int) -> ::c_int;
-    pub fn mkostemps(template: *mut ::c_char, suffixlen: ::c_int, flags: ::c_int) -> ::c_int;
-    pub fn sigtimedwait(
-        set: *const sigset_t,
-        info: *mut siginfo_t,
-        timeout: *const ::timespec,
-    ) -> ::c_int;
-    pub fn sigwaitinfo(set: *const sigset_t, info: *mut siginfo_t) -> ::c_int;
-    pub fn nl_langinfo_l(item: ::nl_item, locale: ::locale_t) -> *mut ::c_char;
-    pub fn accept4(
-        fd: ::c_int,
-        addr: *mut ::sockaddr,
-        len: *mut ::socklen_t,
-        flg: ::c_int,
-    ) -> ::c_int;
-    pub fn pthread_getaffinity_np(
-        thread: ::pthread_t,
-        cpusetsize: ::size_t,
-        cpuset: *mut ::cpu_set_t,
-    ) -> ::c_int;
-    pub fn pthread_setaffinity_np(
-        thread: ::pthread_t,
-        cpusetsize: ::size_t,
-        cpuset: *const ::cpu_set_t,
-    ) -> ::c_int;
-    pub fn pthread_setschedprio(native: ::pthread_t, priority: ::c_int) -> ::c_int;
-    pub fn reboot(how_to: ::c_int) -> ::c_int;
-    pub fn setfsgid(gid: ::gid_t) -> ::c_int;
-    pub fn setfsuid(uid: ::uid_t) -> ::c_int;
-
-    // Not available now on Android
-    pub fn mkfifoat(dirfd: ::c_int, pathname: *const ::c_char, mode: ::mode_t) -> ::c_int;
-    pub fn if_nameindex() -> *mut if_nameindex;
-    pub fn if_freenameindex(ptr: *mut if_nameindex);
-    pub fn sync_file_range(
-        fd: ::c_int,
-        offset: ::off64_t,
-        nbytes: ::off64_t,
-        flags: ::c_uint,
-    ) -> ::c_int;
-    pub fn mremap(
-        addr: *mut ::c_void,
-        len: ::size_t,
-        new_len: ::size_t,
-        flags: ::c_int,
-        ...
-    ) -> *mut ::c_void;
-
-    pub fn glob(
-        pattern: *const c_char,
-        flags: ::c_int,
-        errfunc: ::Option<extern "C" fn(epath: *const c_char, errno: ::c_int) -> ::c_int>,
-        pglob: *mut ::glob_t,
-    ) -> ::c_int;
-    pub fn globfree(pglob: *mut ::glob_t);
-
-    pub fn posix_madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int;
-
-    pub fn shm_unlink(name: *const ::c_char) -> ::c_int;
-
-    pub fn seekdir(dirp: *mut ::DIR, loc: ::c_long);
-
-    pub fn telldir(dirp: *mut ::DIR) -> ::c_long;
-    pub fn madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int;
-
-    pub fn msync(addr: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::c_int;
-    pub fn remap_file_pages(
-        addr: *mut ::c_void,
-        size: ::size_t,
-        prot: ::c_int,
-        pgoff: ::size_t,
-        flags: ::c_int,
-    ) -> ::c_int;
-    pub fn recvfrom(
-        socket: ::c_int,
-        buf: *mut ::c_void,
-        len: ::size_t,
-        flags: ::c_int,
-        addr: *mut ::sockaddr,
-        addrlen: *mut ::socklen_t,
-    ) -> ::ssize_t;
-    pub fn mkstemps(template: *mut ::c_char, suffixlen: ::c_int) -> ::c_int;
-
-    pub fn nl_langinfo(item: ::nl_item) -> *mut ::c_char;
-
-    pub fn getdomainname(name: *mut ::c_char, len: ::size_t) -> ::c_int;
-    pub fn setdomainname(name: *const ::c_char, len: ::size_t) -> ::c_int;
-    pub fn vhangup() -> ::c_int;
-    pub fn sync();
-    pub fn syncfs(fd: ::c_int) -> ::c_int;
-    pub fn syscall(num: ::c_long, ...) -> ::c_long;
-    pub fn sched_getaffinity(pid: ::pid_t, cpusetsize: ::size_t, cpuset: *mut cpu_set_t)
-        -> ::c_int;
-    pub fn sched_setaffinity(
-        pid: ::pid_t,
-        cpusetsize: ::size_t,
-        cpuset: *const cpu_set_t,
-    ) -> ::c_int;
-    pub fn epoll_create(size: ::c_int) -> ::c_int;
-    pub fn epoll_create1(flags: ::c_int) -> ::c_int;
-    pub fn epoll_wait(
-        epfd: ::c_int,
-        events: *mut ::epoll_event,
-        maxevents: ::c_int,
-        timeout: ::c_int,
-    ) -> ::c_int;
-    pub fn epoll_ctl(epfd: ::c_int, op: ::c_int, fd: ::c_int, event: *mut ::epoll_event)
-        -> ::c_int;
-    pub fn pthread_getschedparam(
-        native: ::pthread_t,
-        policy: *mut ::c_int,
-        param: *mut ::sched_param,
-    ) -> ::c_int;
-    pub fn unshare(flags: ::c_int) -> ::c_int;
-    pub fn umount(target: *const ::c_char) -> ::c_int;
-    pub fn sched_get_priority_max(policy: ::c_int) -> ::c_int;
-    pub fn tee(fd_in: ::c_int, fd_out: ::c_int, len: ::size_t, flags: ::c_uint) -> ::ssize_t;
-    pub fn settimeofday(tv: *const ::timeval, tz: *const ::timezone) -> ::c_int;
-    pub fn splice(
-        fd_in: ::c_int,
-        off_in: *mut ::loff_t,
-        fd_out: ::c_int,
-        off_out: *mut ::loff_t,
-        len: ::size_t,
-        flags: ::c_uint,
-    ) -> ::ssize_t;
-    pub fn eventfd(init: ::c_uint, flags: ::c_int) -> ::c_int;
-    pub fn sched_rr_get_interval(pid: ::pid_t, tp: *mut ::timespec) -> ::c_int;
-    pub fn sem_timedwait(sem: *mut sem_t, abstime: *const ::timespec) -> ::c_int;
-    pub fn sem_getvalue(sem: *mut sem_t, sval: *mut ::c_int) -> ::c_int;
-    pub fn sched_setparam(pid: ::pid_t, param: *const ::sched_param) -> ::c_int;
-    pub fn setns(fd: ::c_int, nstype: ::c_int) -> ::c_int;
-    pub fn swapoff(path: *const ::c_char) -> ::c_int;
-    pub fn vmsplice(
-        fd: ::c_int,
-        iov: *const ::iovec,
-        nr_segs: ::size_t,
-        flags: ::c_uint,
-    ) -> ::ssize_t;
-    pub fn mount(
-        src: *const ::c_char,
-        target: *const ::c_char,
-        fstype: *const ::c_char,
-        flags: ::c_ulong,
-        data: *const ::c_void,
-    ) -> ::c_int;
-    pub fn personality(persona: ::c_ulong) -> ::c_int;
-    pub fn prctl(option: ::c_int, ...) -> ::c_int;
-    pub fn sched_getparam(pid: ::pid_t, param: *mut ::sched_param) -> ::c_int;
-    pub fn ppoll(
-        fds: *mut ::pollfd,
-        nfds: nfds_t,
-        timeout: *const ::timespec,
-        sigmask: *const sigset_t,
-    ) -> ::c_int;
-    pub fn pthread_mutexattr_getprotocol(
-        attr: *const pthread_mutexattr_t,
-        protocol: *mut ::c_int,
-    ) -> ::c_int;
-    pub fn pthread_mutexattr_setprotocol(
-        attr: *mut pthread_mutexattr_t,
-        protocol: ::c_int,
-    ) -> ::c_int;
-    pub fn pthread_mutex_consistent(mutex: *mut pthread_mutex_t) -> ::c_int;
-    pub fn pthread_mutex_timedlock(
-        lock: *mut pthread_mutex_t,
-        abstime: *const ::timespec,
-    ) -> ::c_int;
-    pub fn pthread_spin_init(lock: *mut ::pthread_spinlock_t, pshared: ::c_int) -> ::c_int;
-    pub fn pthread_spin_destroy(lock: *mut ::pthread_spinlock_t) -> ::c_int;
-    pub fn pthread_spin_lock(lock: *mut ::pthread_spinlock_t) -> ::c_int;
-    pub fn pthread_spin_trylock(lock: *mut ::pthread_spinlock_t) -> ::c_int;
-    pub fn pthread_spin_unlock(lock: *mut ::pthread_spinlock_t) -> ::c_int;
-    pub fn clone(
-        cb: extern "C" fn(*mut ::c_void) -> ::c_int,
-        child_stack: *mut ::c_void,
-        flags: ::c_int,
-        arg: *mut ::c_void,
-        ...
-    ) -> ::c_int;
-    pub fn sched_getscheduler(pid: ::pid_t) -> ::c_int;
-    pub fn clock_nanosleep(
-        clk_id: ::clockid_t,
-        flags: ::c_int,
-        rqtp: *const ::timespec,
-        rmtp: *mut ::timespec,
-    ) -> ::c_int;
-    pub fn pthread_attr_getguardsize(
-        attr: *const ::pthread_attr_t,
-        guardsize: *mut ::size_t,
-    ) -> ::c_int;
-    pub fn sethostname(name: *const ::c_char, len: ::size_t) -> ::c_int;
-    pub fn sched_get_priority_min(policy: ::c_int) -> ::c_int;
-    pub fn pthread_condattr_getpshared(
-        attr: *const pthread_condattr_t,
-        pshared: *mut ::c_int,
-    ) -> ::c_int;
-    pub fn sysinfo(info: *mut ::sysinfo) -> ::c_int;
-    pub fn umount2(target: *const ::c_char, flags: ::c_int) -> ::c_int;
-    pub fn pthread_setschedparam(
-        native: ::pthread_t,
-        policy: ::c_int,
-        param: *const ::sched_param,
-    ) -> ::c_int;
-    pub fn swapon(path: *const ::c_char, swapflags: ::c_int) -> ::c_int;
-    pub fn sched_setscheduler(
-        pid: ::pid_t,
-        policy: ::c_int,
-        param: *const ::sched_param,
-    ) -> ::c_int;
-    pub fn sendfile(
-        out_fd: ::c_int,
-        in_fd: ::c_int,
-        offset: *mut off_t,
-        count: ::size_t,
-    ) -> ::ssize_t;
-    pub fn sendfile64(
-        out_fd: ::c_int,
-        in_fd: ::c_int,
-        offset: *mut off64_t,
-        count: ::size_t,
-    ) -> ::ssize_t;
-    pub fn sigsuspend(mask: *const ::sigset_t) -> ::c_int;
-    pub fn getgrgid_r(
-        gid: ::gid_t,
-        grp: *mut ::group,
-        buf: *mut ::c_char,
-        buflen: ::size_t,
-        result: *mut *mut ::group,
-    ) -> ::c_int;
-    pub fn sigaltstack(ss: *const stack_t, oss: *mut stack_t) -> ::c_int;
-    pub fn sem_close(sem: *mut sem_t) -> ::c_int;
-    pub fn getdtablesize() -> ::c_int;
-    pub fn getgrnam_r(
-        name: *const ::c_char,
-        grp: *mut ::group,
-        buf: *mut ::c_char,
-        buflen: ::size_t,
-        result: *mut *mut ::group,
-    ) -> ::c_int;
-    pub fn initgroups(user: *const ::c_char, group: ::gid_t) -> ::c_int;
-    pub fn pthread_sigmask(how: ::c_int, set: *const sigset_t, oldset: *mut sigset_t) -> ::c_int;
-    pub fn sem_open(name: *const ::c_char, oflag: ::c_int, ...) -> *mut sem_t;
-    pub fn getgrnam(name: *const ::c_char) -> *mut ::group;
-    pub fn pthread_cancel(thread: ::pthread_t) -> ::c_int;
-    pub fn pthread_kill(thread: ::pthread_t, sig: ::c_int) -> ::c_int;
-    pub fn sem_unlink(name: *const ::c_char) -> ::c_int;
-    pub fn daemon(nochdir: ::c_int, noclose: ::c_int) -> ::c_int;
-    pub fn getpwnam_r(
-        name: *const ::c_char,
-        pwd: *mut passwd,
-        buf: *mut ::c_char,
-        buflen: ::size_t,
-        result: *mut *mut passwd,
-    ) -> ::c_int;
-    pub fn getpwuid_r(
-        uid: ::uid_t,
-        pwd: *mut passwd,
-        buf: *mut ::c_char,
-        buflen: ::size_t,
-        result: *mut *mut passwd,
-    ) -> ::c_int;
-    pub fn sigwait(set: *const sigset_t, sig: *mut ::c_int) -> ::c_int;
-    pub fn pthread_atfork(
-        prepare: ::Option<unsafe extern "C" fn()>,
-        parent: ::Option<unsafe extern "C" fn()>,
-        child: ::Option<unsafe extern "C" fn()>,
-    ) -> ::c_int;
-    pub fn getgrgid(gid: ::gid_t) -> *mut ::group;
-    pub fn getgrouplist(
-        user: *const ::c_char,
-        group: ::gid_t,
-        groups: *mut ::gid_t,
-        ngroups: *mut ::c_int,
-    ) -> ::c_int;
-    pub fn pthread_mutexattr_getpshared(
-        attr: *const pthread_mutexattr_t,
-        pshared: *mut ::c_int,
-    ) -> ::c_int;
-    pub fn pthread_mutexattr_getrobust(
-        attr: *const pthread_mutexattr_t,
-        robustness: *mut ::c_int,
-    ) -> ::c_int;
-    pub fn pthread_mutexattr_setrobust(
-        attr: *mut pthread_mutexattr_t,
-        robustness: ::c_int,
-    ) -> ::c_int;
-    pub fn popen(command: *const c_char, mode: *const c_char) -> *mut ::FILE;
-    pub fn faccessat(
-        dirfd: ::c_int,
-        pathname: *const ::c_char,
-        mode: ::c_int,
-        flags: ::c_int,
-    ) -> ::c_int;
-    pub fn pthread_create(
-        native: *mut ::pthread_t,
-        attr: *const ::pthread_attr_t,
-        f: extern "C" fn(*mut ::c_void) -> *mut ::c_void,
-        value: *mut ::c_void,
-    ) -> ::c_int;
-    pub fn dl_iterate_phdr(
-        callback: ::Option<
-            unsafe extern "C" fn(
-                info: *mut ::dl_phdr_info,
-                size: ::size_t,
-                data: *mut ::c_void,
-            ) -> ::c_int,
-        >,
-        data: *mut ::c_void,
-    ) -> ::c_int;
-
-    pub fn setmntent(filename: *const ::c_char, ty: *const ::c_char) -> *mut ::FILE;
-    pub fn getmntent(stream: *mut ::FILE) -> *mut ::mntent;
-    pub fn addmntent(stream: *mut ::FILE, mnt: *const ::mntent) -> ::c_int;
-    pub fn endmntent(streamp: *mut ::FILE) -> ::c_int;
-    pub fn hasmntopt(mnt: *const ::mntent, opt: *const ::c_char) -> *mut ::c_char;
-
-    pub fn posix_spawn(
-        pid: *mut ::pid_t,
-        path: *const ::c_char,
-        file_actions: *const ::posix_spawn_file_actions_t,
-        attrp: *const ::posix_spawnattr_t,
-        argv: *const *mut ::c_char,
-        envp: *const *mut ::c_char,
-    ) -> ::c_int;
-    pub fn posix_spawnp(
-        pid: *mut ::pid_t,
-        file: *const ::c_char,
-        file_actions: *const ::posix_spawn_file_actions_t,
-        attrp: *const ::posix_spawnattr_t,
-        argv: *const *mut ::c_char,
-        envp: *const *mut ::c_char,
-    ) -> ::c_int;
-    pub fn posix_spawnattr_init(attr: *mut posix_spawnattr_t) -> ::c_int;
-    pub fn posix_spawnattr_destroy(attr: *mut posix_spawnattr_t) -> ::c_int;
-    pub fn posix_spawnattr_getsigdefault(
-        attr: *const posix_spawnattr_t,
-        default: *mut ::sigset_t,
-    ) -> ::c_int;
-    pub fn posix_spawnattr_setsigdefault(
-        attr: *mut posix_spawnattr_t,
-        default: *const ::sigset_t,
-    ) -> ::c_int;
-    pub fn posix_spawnattr_getsigmask(
-        attr: *const posix_spawnattr_t,
-        default: *mut ::sigset_t,
-    ) -> ::c_int;
-    pub fn posix_spawnattr_setsigmask(
-        attr: *mut posix_spawnattr_t,
-        default: *const ::sigset_t,
-    ) -> ::c_int;
-    pub fn posix_spawnattr_getflags(
-        attr: *const posix_spawnattr_t,
-        flags: *mut ::c_short,
-    ) -> ::c_int;
-    pub fn posix_spawnattr_setflags(attr: *mut posix_spawnattr_t, flags: ::c_short) -> ::c_int;
-    pub fn posix_spawnattr_getpgroup(
-        attr: *const posix_spawnattr_t,
-        flags: *mut ::pid_t,
-    ) -> ::c_int;
-    pub fn posix_spawnattr_setpgroup(attr: *mut posix_spawnattr_t, flags: ::pid_t) -> ::c_int;
-    pub fn posix_spawnattr_getschedpolicy(
-        attr: *const posix_spawnattr_t,
-        flags: *mut ::c_int,
-    ) -> ::c_int;
-    pub fn posix_spawnattr_setschedpolicy(attr: *mut posix_spawnattr_t, flags: ::c_int) -> ::c_int;
-    pub fn posix_spawnattr_getschedparam(
-        attr: *const posix_spawnattr_t,
-        param: *mut ::sched_param,
-    ) -> ::c_int;
-    pub fn posix_spawnattr_setschedparam(
-        attr: *mut posix_spawnattr_t,
-        param: *const ::sched_param,
-    ) -> ::c_int;
-
-    pub fn posix_spawn_file_actions_init(actions: *mut posix_spawn_file_actions_t) -> ::c_int;
-    pub fn posix_spawn_file_actions_destroy(actions: *mut posix_spawn_file_actions_t) -> ::c_int;
-    pub fn posix_spawn_file_actions_addopen(
-        actions: *mut posix_spawn_file_actions_t,
-        fd: ::c_int,
-        path: *const ::c_char,
-        oflag: ::c_int,
-        mode: ::mode_t,
-    ) -> ::c_int;
-    pub fn posix_spawn_file_actions_addclose(
-        actions: *mut posix_spawn_file_actions_t,
-        fd: ::c_int,
-    ) -> ::c_int;
-    pub fn posix_spawn_file_actions_adddup2(
-        actions: *mut posix_spawn_file_actions_t,
-        fd: ::c_int,
-        newfd: ::c_int,
-    ) -> ::c_int;
-    pub fn fread_unlocked(
-        ptr: *mut ::c_void,
-        size: ::size_t,
-        nobj: ::size_t,
-        stream: *mut ::FILE,
-    ) -> ::size_t;
-    pub fn inotify_rm_watch(fd: ::c_int, wd: ::c_int) -> ::c_int;
-    pub fn inotify_init() -> ::c_int;
-    pub fn inotify_init1(flags: ::c_int) -> ::c_int;
-    pub fn inotify_add_watch(fd: ::c_int, path: *const ::c_char, mask: u32) -> ::c_int;
-    pub fn fanotify_init(flags: ::c_uint, event_f_flags: ::c_uint) -> ::c_int;
-
-    pub fn regcomp(preg: *mut ::regex_t, pattern: *const ::c_char, cflags: ::c_int) -> ::c_int;
-
-    pub fn regexec(
-        preg: *const ::regex_t,
-        input: *const ::c_char,
-        nmatch: ::size_t,
-        pmatch: *mut regmatch_t,
-        eflags: ::c_int,
-    ) -> ::c_int;
-
-    pub fn regerror(
-        errcode: ::c_int,
-        preg: *const ::regex_t,
-        errbuf: *mut ::c_char,
-        errbuf_size: ::size_t,
-    ) -> ::size_t;
-
-    pub fn regfree(preg: *mut ::regex_t);
-
-    pub fn iconv_open(tocode: *const ::c_char, fromcode: *const ::c_char) -> iconv_t;
-    pub fn iconv(
-        cd: iconv_t,
-        inbuf: *mut *mut ::c_char,
-        inbytesleft: *mut ::size_t,
-        outbuf: *mut *mut ::c_char,
-        outbytesleft: *mut ::size_t,
-    ) -> ::size_t;
-    pub fn iconv_close(cd: iconv_t) -> ::c_int;
-
-    pub fn gettid() -> ::pid_t;
-
-    pub fn timer_create(
-        clockid: ::clockid_t,
-        sevp: *mut ::sigevent,
-        timerid: *mut ::timer_t,
-    ) -> ::c_int;
-    pub fn timer_delete(timerid: ::timer_t) -> ::c_int;
-    pub fn timer_getoverrun(timerid: ::timer_t) -> ::c_int;
-    pub fn timer_gettime(timerid: ::timer_t, curr_value: *mut ::itimerspec) -> ::c_int;
-    pub fn timer_settime(
-        timerid: ::timer_t,
-        flags: ::c_int,
-        new_value: *const ::itimerspec,
-        old_value: *mut ::itimerspec,
-    ) -> ::c_int;
-
-    pub fn gethostid() -> ::c_long;
-
-    pub fn pthread_getcpuclockid(thread: ::pthread_t, clk_id: *mut ::clockid_t) -> ::c_int;
-    pub fn memmem(
-        haystack: *const ::c_void,
-        haystacklen: ::size_t,
-        needle: *const ::c_void,
-        needlelen: ::size_t,
-    ) -> *mut ::c_void;
-    pub fn sched_getcpu() -> ::c_int;
-
-    pub fn pthread_getname_np(thread: ::pthread_t, name: *mut ::c_char, len: ::size_t) -> ::c_int;
-    pub fn pthread_setname_np(thread: ::pthread_t, name: *const ::c_char) -> ::c_int;
-    pub fn getopt_long(
-        argc: ::c_int,
-        argv: *const *mut c_char,
-        optstring: *const c_char,
-        longopts: *const option,
-        longindex: *mut ::c_int,
-    ) -> ::c_int;
-}
-
-cfg_if! {
-    if #[cfg(target_env = "uclibc")] {
-        mod uclibc;
-        pub use self::uclibc::*;
-    } else if #[cfg(target_env = "musl")] {
-        mod musl;
-        pub use self::musl::*;
-    } else if #[cfg(target_env = "gnu")] {
-        mod gnu;
-        pub use self::gnu::*;
-    }
-}
-
-mod arch;
-pub use self::arch::*;
-
-cfg_if! {
-    if #[cfg(libc_align)] {
-        #[macro_use]
-        mod align;
-    } else {
-        #[macro_use]
-        mod no_align;
-    }
-}
-expand_align!();
-
-cfg_if! {
-    if #[cfg(libc_non_exhaustive)] {
-        mod non_exhaustive;
-        pub use self::non_exhaustive::*;
-    }
-}
-
-
\ No newline at end of file diff --git a/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/linux_like/linux/non_exhaustive.rs.html b/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/linux_like/linux/non_exhaustive.rs.html deleted file mode 100644 index d6ab775..0000000 --- a/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/linux_like/linux/non_exhaustive.rs.html +++ /dev/null @@ -1,20 +0,0 @@ -non_exhaustive.rs - source
1
-2
-3
-4
-5
-6
-7
-8
-9
-
s! {
-    // linux/openat2.h
-    #[non_exhaustive]
-    pub struct open_how {
-        pub flags: ::__u64,
-        pub mode: ::__u64,
-        pub resolve: ::__u64,
-    }
-}
-
-
\ No newline at end of file diff --git a/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/linux_like/mod.rs.html b/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/linux_like/mod.rs.html deleted file mode 100644 index c838ce4..0000000 --- a/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/linux_like/mod.rs.html +++ /dev/null @@ -1,3660 +0,0 @@ -mod.rs - source
1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
-21
-22
-23
-24
-25
-26
-27
-28
-29
-30
-31
-32
-33
-34
-35
-36
-37
-38
-39
-40
-41
-42
-43
-44
-45
-46
-47
-48
-49
-50
-51
-52
-53
-54
-55
-56
-57
-58
-59
-60
-61
-62
-63
-64
-65
-66
-67
-68
-69
-70
-71
-72
-73
-74
-75
-76
-77
-78
-79
-80
-81
-82
-83
-84
-85
-86
-87
-88
-89
-90
-91
-92
-93
-94
-95
-96
-97
-98
-99
-100
-101
-102
-103
-104
-105
-106
-107
-108
-109
-110
-111
-112
-113
-114
-115
-116
-117
-118
-119
-120
-121
-122
-123
-124
-125
-126
-127
-128
-129
-130
-131
-132
-133
-134
-135
-136
-137
-138
-139
-140
-141
-142
-143
-144
-145
-146
-147
-148
-149
-150
-151
-152
-153
-154
-155
-156
-157
-158
-159
-160
-161
-162
-163
-164
-165
-166
-167
-168
-169
-170
-171
-172
-173
-174
-175
-176
-177
-178
-179
-180
-181
-182
-183
-184
-185
-186
-187
-188
-189
-190
-191
-192
-193
-194
-195
-196
-197
-198
-199
-200
-201
-202
-203
-204
-205
-206
-207
-208
-209
-210
-211
-212
-213
-214
-215
-216
-217
-218
-219
-220
-221
-222
-223
-224
-225
-226
-227
-228
-229
-230
-231
-232
-233
-234
-235
-236
-237
-238
-239
-240
-241
-242
-243
-244
-245
-246
-247
-248
-249
-250
-251
-252
-253
-254
-255
-256
-257
-258
-259
-260
-261
-262
-263
-264
-265
-266
-267
-268
-269
-270
-271
-272
-273
-274
-275
-276
-277
-278
-279
-280
-281
-282
-283
-284
-285
-286
-287
-288
-289
-290
-291
-292
-293
-294
-295
-296
-297
-298
-299
-300
-301
-302
-303
-304
-305
-306
-307
-308
-309
-310
-311
-312
-313
-314
-315
-316
-317
-318
-319
-320
-321
-322
-323
-324
-325
-326
-327
-328
-329
-330
-331
-332
-333
-334
-335
-336
-337
-338
-339
-340
-341
-342
-343
-344
-345
-346
-347
-348
-349
-350
-351
-352
-353
-354
-355
-356
-357
-358
-359
-360
-361
-362
-363
-364
-365
-366
-367
-368
-369
-370
-371
-372
-373
-374
-375
-376
-377
-378
-379
-380
-381
-382
-383
-384
-385
-386
-387
-388
-389
-390
-391
-392
-393
-394
-395
-396
-397
-398
-399
-400
-401
-402
-403
-404
-405
-406
-407
-408
-409
-410
-411
-412
-413
-414
-415
-416
-417
-418
-419
-420
-421
-422
-423
-424
-425
-426
-427
-428
-429
-430
-431
-432
-433
-434
-435
-436
-437
-438
-439
-440
-441
-442
-443
-444
-445
-446
-447
-448
-449
-450
-451
-452
-453
-454
-455
-456
-457
-458
-459
-460
-461
-462
-463
-464
-465
-466
-467
-468
-469
-470
-471
-472
-473
-474
-475
-476
-477
-478
-479
-480
-481
-482
-483
-484
-485
-486
-487
-488
-489
-490
-491
-492
-493
-494
-495
-496
-497
-498
-499
-500
-501
-502
-503
-504
-505
-506
-507
-508
-509
-510
-511
-512
-513
-514
-515
-516
-517
-518
-519
-520
-521
-522
-523
-524
-525
-526
-527
-528
-529
-530
-531
-532
-533
-534
-535
-536
-537
-538
-539
-540
-541
-542
-543
-544
-545
-546
-547
-548
-549
-550
-551
-552
-553
-554
-555
-556
-557
-558
-559
-560
-561
-562
-563
-564
-565
-566
-567
-568
-569
-570
-571
-572
-573
-574
-575
-576
-577
-578
-579
-580
-581
-582
-583
-584
-585
-586
-587
-588
-589
-590
-591
-592
-593
-594
-595
-596
-597
-598
-599
-600
-601
-602
-603
-604
-605
-606
-607
-608
-609
-610
-611
-612
-613
-614
-615
-616
-617
-618
-619
-620
-621
-622
-623
-624
-625
-626
-627
-628
-629
-630
-631
-632
-633
-634
-635
-636
-637
-638
-639
-640
-641
-642
-643
-644
-645
-646
-647
-648
-649
-650
-651
-652
-653
-654
-655
-656
-657
-658
-659
-660
-661
-662
-663
-664
-665
-666
-667
-668
-669
-670
-671
-672
-673
-674
-675
-676
-677
-678
-679
-680
-681
-682
-683
-684
-685
-686
-687
-688
-689
-690
-691
-692
-693
-694
-695
-696
-697
-698
-699
-700
-701
-702
-703
-704
-705
-706
-707
-708
-709
-710
-711
-712
-713
-714
-715
-716
-717
-718
-719
-720
-721
-722
-723
-724
-725
-726
-727
-728
-729
-730
-731
-732
-733
-734
-735
-736
-737
-738
-739
-740
-741
-742
-743
-744
-745
-746
-747
-748
-749
-750
-751
-752
-753
-754
-755
-756
-757
-758
-759
-760
-761
-762
-763
-764
-765
-766
-767
-768
-769
-770
-771
-772
-773
-774
-775
-776
-777
-778
-779
-780
-781
-782
-783
-784
-785
-786
-787
-788
-789
-790
-791
-792
-793
-794
-795
-796
-797
-798
-799
-800
-801
-802
-803
-804
-805
-806
-807
-808
-809
-810
-811
-812
-813
-814
-815
-816
-817
-818
-819
-820
-821
-822
-823
-824
-825
-826
-827
-828
-829
-830
-831
-832
-833
-834
-835
-836
-837
-838
-839
-840
-841
-842
-843
-844
-845
-846
-847
-848
-849
-850
-851
-852
-853
-854
-855
-856
-857
-858
-859
-860
-861
-862
-863
-864
-865
-866
-867
-868
-869
-870
-871
-872
-873
-874
-875
-876
-877
-878
-879
-880
-881
-882
-883
-884
-885
-886
-887
-888
-889
-890
-891
-892
-893
-894
-895
-896
-897
-898
-899
-900
-901
-902
-903
-904
-905
-906
-907
-908
-909
-910
-911
-912
-913
-914
-915
-916
-917
-918
-919
-920
-921
-922
-923
-924
-925
-926
-927
-928
-929
-930
-931
-932
-933
-934
-935
-936
-937
-938
-939
-940
-941
-942
-943
-944
-945
-946
-947
-948
-949
-950
-951
-952
-953
-954
-955
-956
-957
-958
-959
-960
-961
-962
-963
-964
-965
-966
-967
-968
-969
-970
-971
-972
-973
-974
-975
-976
-977
-978
-979
-980
-981
-982
-983
-984
-985
-986
-987
-988
-989
-990
-991
-992
-993
-994
-995
-996
-997
-998
-999
-1000
-1001
-1002
-1003
-1004
-1005
-1006
-1007
-1008
-1009
-1010
-1011
-1012
-1013
-1014
-1015
-1016
-1017
-1018
-1019
-1020
-1021
-1022
-1023
-1024
-1025
-1026
-1027
-1028
-1029
-1030
-1031
-1032
-1033
-1034
-1035
-1036
-1037
-1038
-1039
-1040
-1041
-1042
-1043
-1044
-1045
-1046
-1047
-1048
-1049
-1050
-1051
-1052
-1053
-1054
-1055
-1056
-1057
-1058
-1059
-1060
-1061
-1062
-1063
-1064
-1065
-1066
-1067
-1068
-1069
-1070
-1071
-1072
-1073
-1074
-1075
-1076
-1077
-1078
-1079
-1080
-1081
-1082
-1083
-1084
-1085
-1086
-1087
-1088
-1089
-1090
-1091
-1092
-1093
-1094
-1095
-1096
-1097
-1098
-1099
-1100
-1101
-1102
-1103
-1104
-1105
-1106
-1107
-1108
-1109
-1110
-1111
-1112
-1113
-1114
-1115
-1116
-1117
-1118
-1119
-1120
-1121
-1122
-1123
-1124
-1125
-1126
-1127
-1128
-1129
-1130
-1131
-1132
-1133
-1134
-1135
-1136
-1137
-1138
-1139
-1140
-1141
-1142
-1143
-1144
-1145
-1146
-1147
-1148
-1149
-1150
-1151
-1152
-1153
-1154
-1155
-1156
-1157
-1158
-1159
-1160
-1161
-1162
-1163
-1164
-1165
-1166
-1167
-1168
-1169
-1170
-1171
-1172
-1173
-1174
-1175
-1176
-1177
-1178
-1179
-1180
-1181
-1182
-1183
-1184
-1185
-1186
-1187
-1188
-1189
-1190
-1191
-1192
-1193
-1194
-1195
-1196
-1197
-1198
-1199
-1200
-1201
-1202
-1203
-1204
-1205
-1206
-1207
-1208
-1209
-1210
-1211
-1212
-1213
-1214
-1215
-1216
-1217
-1218
-1219
-1220
-1221
-1222
-1223
-1224
-1225
-1226
-1227
-1228
-1229
-1230
-1231
-1232
-1233
-1234
-1235
-1236
-1237
-1238
-1239
-1240
-1241
-1242
-1243
-1244
-1245
-1246
-1247
-1248
-1249
-1250
-1251
-1252
-1253
-1254
-1255
-1256
-1257
-1258
-1259
-1260
-1261
-1262
-1263
-1264
-1265
-1266
-1267
-1268
-1269
-1270
-1271
-1272
-1273
-1274
-1275
-1276
-1277
-1278
-1279
-1280
-1281
-1282
-1283
-1284
-1285
-1286
-1287
-1288
-1289
-1290
-1291
-1292
-1293
-1294
-1295
-1296
-1297
-1298
-1299
-1300
-1301
-1302
-1303
-1304
-1305
-1306
-1307
-1308
-1309
-1310
-1311
-1312
-1313
-1314
-1315
-1316
-1317
-1318
-1319
-1320
-1321
-1322
-1323
-1324
-1325
-1326
-1327
-1328
-1329
-1330
-1331
-1332
-1333
-1334
-1335
-1336
-1337
-1338
-1339
-1340
-1341
-1342
-1343
-1344
-1345
-1346
-1347
-1348
-1349
-1350
-1351
-1352
-1353
-1354
-1355
-1356
-1357
-1358
-1359
-1360
-1361
-1362
-1363
-1364
-1365
-1366
-1367
-1368
-1369
-1370
-1371
-1372
-1373
-1374
-1375
-1376
-1377
-1378
-1379
-1380
-1381
-1382
-1383
-1384
-1385
-1386
-1387
-1388
-1389
-1390
-1391
-1392
-1393
-1394
-1395
-1396
-1397
-1398
-1399
-1400
-1401
-1402
-1403
-1404
-1405
-1406
-1407
-1408
-1409
-1410
-1411
-1412
-1413
-1414
-1415
-1416
-1417
-1418
-1419
-1420
-1421
-1422
-1423
-1424
-1425
-1426
-1427
-1428
-1429
-1430
-1431
-1432
-1433
-1434
-1435
-1436
-1437
-1438
-1439
-1440
-1441
-1442
-1443
-1444
-1445
-1446
-1447
-1448
-1449
-1450
-1451
-1452
-1453
-1454
-1455
-1456
-1457
-1458
-1459
-1460
-1461
-1462
-1463
-1464
-1465
-1466
-1467
-1468
-1469
-1470
-1471
-1472
-1473
-1474
-1475
-1476
-1477
-1478
-1479
-1480
-1481
-1482
-1483
-1484
-1485
-1486
-1487
-1488
-1489
-1490
-1491
-1492
-1493
-1494
-1495
-1496
-1497
-1498
-1499
-1500
-1501
-1502
-1503
-1504
-1505
-1506
-1507
-1508
-1509
-1510
-1511
-1512
-1513
-1514
-1515
-1516
-1517
-1518
-1519
-1520
-1521
-1522
-1523
-1524
-1525
-1526
-1527
-1528
-1529
-1530
-1531
-1532
-1533
-1534
-1535
-1536
-1537
-1538
-1539
-1540
-1541
-1542
-1543
-1544
-1545
-1546
-1547
-1548
-1549
-1550
-1551
-1552
-1553
-1554
-1555
-1556
-1557
-1558
-1559
-1560
-1561
-1562
-1563
-1564
-1565
-1566
-1567
-1568
-1569
-1570
-1571
-1572
-1573
-1574
-1575
-1576
-1577
-1578
-1579
-1580
-1581
-1582
-1583
-1584
-1585
-1586
-1587
-1588
-1589
-1590
-1591
-1592
-1593
-1594
-1595
-1596
-1597
-1598
-1599
-1600
-1601
-1602
-1603
-1604
-1605
-1606
-1607
-1608
-1609
-1610
-1611
-1612
-1613
-1614
-1615
-1616
-1617
-1618
-1619
-1620
-1621
-1622
-1623
-1624
-1625
-1626
-1627
-1628
-1629
-1630
-1631
-1632
-1633
-1634
-1635
-1636
-1637
-1638
-1639
-1640
-1641
-1642
-1643
-1644
-1645
-1646
-1647
-1648
-1649
-1650
-1651
-1652
-1653
-1654
-1655
-1656
-1657
-1658
-1659
-1660
-1661
-1662
-1663
-1664
-1665
-1666
-1667
-1668
-1669
-1670
-1671
-1672
-1673
-1674
-1675
-1676
-1677
-1678
-1679
-1680
-1681
-1682
-1683
-1684
-1685
-1686
-1687
-1688
-1689
-1690
-1691
-1692
-1693
-1694
-1695
-1696
-1697
-1698
-1699
-1700
-1701
-1702
-1703
-1704
-1705
-1706
-1707
-1708
-1709
-1710
-1711
-1712
-1713
-1714
-1715
-1716
-1717
-1718
-1719
-1720
-1721
-1722
-1723
-1724
-1725
-1726
-1727
-1728
-1729
-1730
-1731
-1732
-1733
-1734
-1735
-1736
-1737
-1738
-1739
-1740
-1741
-1742
-1743
-1744
-1745
-1746
-1747
-1748
-1749
-1750
-1751
-1752
-1753
-1754
-1755
-1756
-1757
-1758
-1759
-1760
-1761
-1762
-1763
-1764
-1765
-1766
-1767
-1768
-1769
-1770
-1771
-1772
-1773
-1774
-1775
-1776
-1777
-1778
-1779
-1780
-1781
-1782
-1783
-1784
-1785
-1786
-1787
-1788
-1789
-1790
-1791
-1792
-1793
-1794
-1795
-1796
-1797
-1798
-1799
-1800
-1801
-1802
-1803
-1804
-1805
-1806
-1807
-1808
-1809
-1810
-1811
-1812
-1813
-1814
-1815
-1816
-1817
-1818
-1819
-1820
-1821
-1822
-1823
-1824
-1825
-1826
-1827
-1828
-1829
-
pub type sa_family_t = u16;
-pub type speed_t = ::c_uint;
-pub type tcflag_t = ::c_uint;
-pub type clockid_t = ::c_int;
-pub type timer_t = *mut ::c_void;
-pub type key_t = ::c_int;
-pub type id_t = ::c_uint;
-
-#[cfg_attr(feature = "extra_traits", derive(Debug))]
-pub enum timezone {}
-impl ::Copy for timezone {}
-impl ::Clone for timezone {
-    fn clone(&self) -> timezone {
-        *self
-    }
-}
-
-s! {
-    pub struct in_addr {
-        pub s_addr: ::in_addr_t,
-    }
-
-    pub struct ip_mreq {
-        pub imr_multiaddr: in_addr,
-        pub imr_interface: in_addr,
-    }
-
-    pub struct ip_mreqn {
-        pub imr_multiaddr: in_addr,
-        pub imr_address: in_addr,
-        pub imr_ifindex: ::c_int,
-    }
-
-    pub struct ip_mreq_source {
-        pub imr_multiaddr: in_addr,
-        pub imr_interface: in_addr,
-        pub imr_sourceaddr: in_addr,
-    }
-
-    pub struct sockaddr {
-        pub sa_family: sa_family_t,
-        pub sa_data: [::c_char; 14],
-    }
-
-    pub struct sockaddr_in {
-        pub sin_family: sa_family_t,
-        pub sin_port: ::in_port_t,
-        pub sin_addr: ::in_addr,
-        pub sin_zero: [u8; 8],
-    }
-
-    pub struct sockaddr_in6 {
-        pub sin6_family: sa_family_t,
-        pub sin6_port: ::in_port_t,
-        pub sin6_flowinfo: u32,
-        pub sin6_addr: ::in6_addr,
-        pub sin6_scope_id: u32,
-    }
-
-    // The order of the `ai_addr` field in this struct is crucial
-    // for converting between the Rust and C types.
-    pub struct addrinfo {
-        pub ai_flags: ::c_int,
-        pub ai_family: ::c_int,
-        pub ai_socktype: ::c_int,
-        pub ai_protocol: ::c_int,
-        pub ai_addrlen: socklen_t,
-
-        #[cfg(any(target_os = "linux",
-                  target_os = "emscripten"))]
-        pub ai_addr: *mut ::sockaddr,
-
-        pub ai_canonname: *mut c_char,
-
-        #[cfg(target_os = "android")]
-        pub ai_addr: *mut ::sockaddr,
-
-        pub ai_next: *mut addrinfo,
-    }
-
-    pub struct sockaddr_ll {
-        pub sll_family: ::c_ushort,
-        pub sll_protocol: ::c_ushort,
-        pub sll_ifindex: ::c_int,
-        pub sll_hatype: ::c_ushort,
-        pub sll_pkttype: ::c_uchar,
-        pub sll_halen: ::c_uchar,
-        pub sll_addr: [::c_uchar; 8]
-    }
-
-    pub struct fd_set {
-        fds_bits: [::c_ulong; FD_SETSIZE / ULONG_SIZE],
-    }
-
-    pub struct tm {
-        pub tm_sec: ::c_int,
-        pub tm_min: ::c_int,
-        pub tm_hour: ::c_int,
-        pub tm_mday: ::c_int,
-        pub tm_mon: ::c_int,
-        pub tm_year: ::c_int,
-        pub tm_wday: ::c_int,
-        pub tm_yday: ::c_int,
-        pub tm_isdst: ::c_int,
-        pub tm_gmtoff: ::c_long,
-        pub tm_zone: *const ::c_char,
-    }
-
-    pub struct sched_param {
-        pub sched_priority: ::c_int,
-        #[cfg(any(target_env = "musl", target_os = "emscripten"))]
-        pub sched_ss_low_priority: ::c_int,
-        #[cfg(any(target_env = "musl", target_os = "emscripten"))]
-        pub sched_ss_repl_period: ::timespec,
-        #[cfg(any(target_env = "musl", target_os = "emscripten"))]
-        pub sched_ss_init_budget: ::timespec,
-        #[cfg(any(target_env = "musl", target_os = "emscripten"))]
-        pub sched_ss_max_repl: ::c_int,
-    }
-
-    pub struct Dl_info {
-        pub dli_fname: *const ::c_char,
-        pub dli_fbase: *mut ::c_void,
-        pub dli_sname: *const ::c_char,
-        pub dli_saddr: *mut ::c_void,
-    }
-
-    pub struct lconv {
-        pub decimal_point: *mut ::c_char,
-        pub thousands_sep: *mut ::c_char,
-        pub grouping: *mut ::c_char,
-        pub int_curr_symbol: *mut ::c_char,
-        pub currency_symbol: *mut ::c_char,
-        pub mon_decimal_point: *mut ::c_char,
-        pub mon_thousands_sep: *mut ::c_char,
-        pub mon_grouping: *mut ::c_char,
-        pub positive_sign: *mut ::c_char,
-        pub negative_sign: *mut ::c_char,
-        pub int_frac_digits: ::c_char,
-        pub frac_digits: ::c_char,
-        pub p_cs_precedes: ::c_char,
-        pub p_sep_by_space: ::c_char,
-        pub n_cs_precedes: ::c_char,
-        pub n_sep_by_space: ::c_char,
-        pub p_sign_posn: ::c_char,
-        pub n_sign_posn: ::c_char,
-        pub int_p_cs_precedes: ::c_char,
-        pub int_p_sep_by_space: ::c_char,
-        pub int_n_cs_precedes: ::c_char,
-        pub int_n_sep_by_space: ::c_char,
-        pub int_p_sign_posn: ::c_char,
-        pub int_n_sign_posn: ::c_char,
-    }
-
-    pub struct in_pktinfo {
-        pub ipi_ifindex: ::c_int,
-        pub ipi_spec_dst: ::in_addr,
-        pub ipi_addr: ::in_addr,
-    }
-
-    pub struct ifaddrs {
-        pub ifa_next: *mut ifaddrs,
-        pub ifa_name: *mut c_char,
-        pub ifa_flags: ::c_uint,
-        pub ifa_addr: *mut ::sockaddr,
-        pub ifa_netmask: *mut ::sockaddr,
-        pub ifa_ifu: *mut ::sockaddr, // FIXME This should be a union
-        pub ifa_data: *mut ::c_void
-    }
-
-    pub struct in6_rtmsg {
-        rtmsg_dst: ::in6_addr,
-        rtmsg_src: ::in6_addr,
-        rtmsg_gateway: ::in6_addr,
-        rtmsg_type: u32,
-        rtmsg_dst_len: u16,
-        rtmsg_src_len: u16,
-        rtmsg_metric: u32,
-        rtmsg_info: ::c_ulong,
-        rtmsg_flags: u32,
-        rtmsg_ifindex: ::c_int,
-    }
-
-    pub struct arpreq {
-        pub arp_pa: ::sockaddr,
-        pub arp_ha: ::sockaddr,
-        pub arp_flags: ::c_int,
-        pub arp_netmask: ::sockaddr,
-        pub arp_dev: [::c_char; 16],
-    }
-
-    pub struct arpreq_old {
-        pub arp_pa: ::sockaddr,
-        pub arp_ha: ::sockaddr,
-        pub arp_flags: ::c_int,
-        pub arp_netmask: ::sockaddr,
-    }
-
-    pub struct arphdr {
-        pub ar_hrd: u16,
-        pub ar_pro: u16,
-        pub ar_hln: u8,
-        pub ar_pln: u8,
-        pub ar_op: u16,
-    }
-
-    pub struct mmsghdr {
-        pub msg_hdr: ::msghdr,
-        pub msg_len: ::c_uint,
-    }
-}
-
-s_no_extra_traits! {
-    #[cfg_attr(
-        any(
-            all(
-                target_arch = "x86",
-                not(target_env = "musl"),
-                not(target_os = "android")),
-            target_arch = "x86_64"),
-        repr(packed))]
-    pub struct epoll_event {
-        pub events: u32,
-        pub u64: u64,
-    }
-
-    pub struct sockaddr_un {
-        pub sun_family: sa_family_t,
-        pub sun_path: [::c_char; 108]
-    }
-
-    pub struct sockaddr_storage {
-        pub ss_family: sa_family_t,
-        #[cfg(target_pointer_width = "32")]
-        __ss_pad2: [u8; 128 - 2 - 4],
-        #[cfg(target_pointer_width = "64")]
-        __ss_pad2: [u8; 128 - 2 - 8],
-        __ss_align: ::size_t,
-    }
-
-    pub struct utsname {
-        pub sysname: [::c_char; 65],
-        pub nodename: [::c_char; 65],
-        pub release: [::c_char; 65],
-        pub version: [::c_char; 65],
-        pub machine: [::c_char; 65],
-        pub domainname: [::c_char; 65]
-    }
-
-    pub struct sigevent {
-        pub sigev_value: ::sigval,
-        pub sigev_signo: ::c_int,
-        pub sigev_notify: ::c_int,
-        // Actually a union.  We only expose sigev_notify_thread_id because it's
-        // the most useful member
-        pub sigev_notify_thread_id: ::c_int,
-        #[cfg(target_pointer_width = "64")]
-        __unused1: [::c_int; 11],
-        #[cfg(target_pointer_width = "32")]
-        __unused1: [::c_int; 12]
-    }
-}
-
-cfg_if! {
-    if #[cfg(feature = "extra_traits")] {
-        impl PartialEq for epoll_event {
-            fn eq(&self, other: &epoll_event) -> bool {
-                self.events == other.events
-                    && self.u64 == other.u64
-            }
-        }
-        impl Eq for epoll_event {}
-        impl ::fmt::Debug for epoll_event {
-            fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
-                let events = self.events;
-                let u64 = self.u64;
-                f.debug_struct("epoll_event")
-                    .field("events", &events)
-                    .field("u64", &u64)
-                    .finish()
-            }
-        }
-        impl ::hash::Hash for epoll_event {
-            fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
-                let events = self.events;
-                let u64 = self.u64;
-                events.hash(state);
-                u64.hash(state);
-            }
-        }
-
-        impl PartialEq for sockaddr_un {
-            fn eq(&self, other: &sockaddr_un) -> bool {
-                self.sun_family == other.sun_family
-                    && self
-                    .sun_path
-                    .iter()
-                    .zip(other.sun_path.iter())
-                    .all(|(a, b)| a == b)
-            }
-        }
-        impl Eq for sockaddr_un {}
-        impl ::fmt::Debug for sockaddr_un {
-            fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
-                f.debug_struct("sockaddr_un")
-                    .field("sun_family", &self.sun_family)
-                // FIXME: .field("sun_path", &self.sun_path)
-                    .finish()
-            }
-        }
-        impl ::hash::Hash for sockaddr_un {
-            fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
-                self.sun_family.hash(state);
-                self.sun_path.hash(state);
-            }
-        }
-
-        impl PartialEq for sockaddr_storage {
-            fn eq(&self, other: &sockaddr_storage) -> bool {
-                self.ss_family == other.ss_family
-                    && self
-                    .__ss_pad2
-                    .iter()
-                    .zip(other.__ss_pad2.iter())
-                    .all(|(a, b)| a == b)
-            }
-        }
-
-        impl Eq for sockaddr_storage {}
-
-        impl ::fmt::Debug for sockaddr_storage {
-            fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
-                f.debug_struct("sockaddr_storage")
-                    .field("ss_family", &self.ss_family)
-                    .field("__ss_align", &self.__ss_align)
-                // FIXME: .field("__ss_pad2", &self.__ss_pad2)
-                    .finish()
-            }
-        }
-
-        impl ::hash::Hash for sockaddr_storage {
-            fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
-                self.ss_family.hash(state);
-                self.__ss_pad2.hash(state);
-            }
-        }
-
-        impl PartialEq for utsname {
-            fn eq(&self, other: &utsname) -> bool {
-                self.sysname
-                    .iter()
-                    .zip(other.sysname.iter())
-                    .all(|(a, b)| a == b)
-                    && self
-                    .nodename
-                    .iter()
-                    .zip(other.nodename.iter())
-                    .all(|(a, b)| a == b)
-                    && self
-                    .release
-                    .iter()
-                    .zip(other.release.iter())
-                    .all(|(a, b)| a == b)
-                    && self
-                    .version
-                    .iter()
-                    .zip(other.version.iter())
-                    .all(|(a, b)| a == b)
-                    && self
-                    .machine
-                    .iter()
-                    .zip(other.machine.iter())
-                    .all(|(a, b)| a == b)
-                    && self
-                    .domainname
-                    .iter()
-                    .zip(other.domainname.iter())
-                    .all(|(a, b)| a == b)
-            }
-        }
-
-        impl Eq for utsname {}
-
-        impl ::fmt::Debug for utsname {
-            fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
-                f.debug_struct("utsname")
-                // FIXME: .field("sysname", &self.sysname)
-                // FIXME: .field("nodename", &self.nodename)
-                // FIXME: .field("release", &self.release)
-                // FIXME: .field("version", &self.version)
-                // FIXME: .field("machine", &self.machine)
-                // FIXME: .field("domainname", &self.domainname)
-                    .finish()
-            }
-        }
-
-        impl ::hash::Hash for utsname {
-            fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
-                self.sysname.hash(state);
-                self.nodename.hash(state);
-                self.release.hash(state);
-                self.version.hash(state);
-                self.machine.hash(state);
-                self.domainname.hash(state);
-            }
-        }
-
-        impl PartialEq for sigevent {
-            fn eq(&self, other: &sigevent) -> bool {
-                self.sigev_value == other.sigev_value
-                    && self.sigev_signo == other.sigev_signo
-                    && self.sigev_notify == other.sigev_notify
-                    && self.sigev_notify_thread_id
-                        == other.sigev_notify_thread_id
-            }
-        }
-        impl Eq for sigevent {}
-        impl ::fmt::Debug for sigevent {
-            fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
-                f.debug_struct("sigevent")
-                    .field("sigev_value", &self.sigev_value)
-                    .field("sigev_signo", &self.sigev_signo)
-                    .field("sigev_notify", &self.sigev_notify)
-                    .field("sigev_notify_thread_id",
-                           &self.sigev_notify_thread_id)
-                    .finish()
-            }
-        }
-        impl ::hash::Hash for sigevent {
-            fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
-                self.sigev_value.hash(state);
-                self.sigev_signo.hash(state);
-                self.sigev_notify.hash(state);
-                self.sigev_notify_thread_id.hash(state);
-            }
-        }
-    }
-}
-
-// intentionally not public, only used for fd_set
-cfg_if! {
-    if #[cfg(target_pointer_width = "32")] {
-        const ULONG_SIZE: usize = 32;
-    } else if #[cfg(target_pointer_width = "64")] {
-        const ULONG_SIZE: usize = 64;
-    } else {
-        // Unknown target_pointer_width
-    }
-}
-
-pub const EXIT_FAILURE: ::c_int = 1;
-pub const EXIT_SUCCESS: ::c_int = 0;
-pub const RAND_MAX: ::c_int = 2147483647;
-pub const EOF: ::c_int = -1;
-pub const SEEK_SET: ::c_int = 0;
-pub const SEEK_CUR: ::c_int = 1;
-pub const SEEK_END: ::c_int = 2;
-pub const _IOFBF: ::c_int = 0;
-pub const _IONBF: ::c_int = 2;
-pub const _IOLBF: ::c_int = 1;
-
-pub const F_DUPFD: ::c_int = 0;
-pub const F_GETFD: ::c_int = 1;
-pub const F_SETFD: ::c_int = 2;
-pub const F_GETFL: ::c_int = 3;
-pub const F_SETFL: ::c_int = 4;
-
-// Linux-specific fcntls
-pub const F_SETLEASE: ::c_int = 1024;
-pub const F_GETLEASE: ::c_int = 1025;
-pub const F_NOTIFY: ::c_int = 1026;
-pub const F_CANCELLK: ::c_int = 1029;
-pub const F_DUPFD_CLOEXEC: ::c_int = 1030;
-pub const F_SETPIPE_SZ: ::c_int = 1031;
-pub const F_GETPIPE_SZ: ::c_int = 1032;
-pub const F_ADD_SEALS: ::c_int = 1033;
-pub const F_GET_SEALS: ::c_int = 1034;
-
-pub const F_SEAL_SEAL: ::c_int = 0x0001;
-pub const F_SEAL_SHRINK: ::c_int = 0x0002;
-pub const F_SEAL_GROW: ::c_int = 0x0004;
-pub const F_SEAL_WRITE: ::c_int = 0x0008;
-
-// FIXME(#235): Include file sealing fcntls once we have a way to verify them.
-
-pub const SIGTRAP: ::c_int = 5;
-
-pub const PTHREAD_CREATE_JOINABLE: ::c_int = 0;
-pub const PTHREAD_CREATE_DETACHED: ::c_int = 1;
-
-pub const CLOCK_REALTIME: ::clockid_t = 0;
-pub const CLOCK_MONOTONIC: ::clockid_t = 1;
-pub const CLOCK_PROCESS_CPUTIME_ID: ::clockid_t = 2;
-pub const CLOCK_THREAD_CPUTIME_ID: ::clockid_t = 3;
-pub const CLOCK_MONOTONIC_RAW: ::clockid_t = 4;
-pub const CLOCK_REALTIME_COARSE: ::clockid_t = 5;
-pub const CLOCK_MONOTONIC_COARSE: ::clockid_t = 6;
-pub const CLOCK_BOOTTIME: ::clockid_t = 7;
-pub const CLOCK_REALTIME_ALARM: ::clockid_t = 8;
-pub const CLOCK_BOOTTIME_ALARM: ::clockid_t = 9;
-pub const CLOCK_TAI: ::clockid_t = 11;
-pub const TIMER_ABSTIME: ::c_int = 1;
-
-pub const RUSAGE_SELF: ::c_int = 0;
-
-pub const O_RDONLY: ::c_int = 0;
-pub const O_WRONLY: ::c_int = 1;
-pub const O_RDWR: ::c_int = 2;
-
-pub const SOCK_CLOEXEC: ::c_int = O_CLOEXEC;
-
-pub const S_IFIFO: ::mode_t = 4096;
-pub const S_IFCHR: ::mode_t = 8192;
-pub const S_IFBLK: ::mode_t = 24576;
-pub const S_IFDIR: ::mode_t = 16384;
-pub const S_IFREG: ::mode_t = 32768;
-pub const S_IFLNK: ::mode_t = 40960;
-pub const S_IFSOCK: ::mode_t = 49152;
-pub const S_IFMT: ::mode_t = 61440;
-pub const S_IRWXU: ::mode_t = 448;
-pub const S_IXUSR: ::mode_t = 64;
-pub const S_IWUSR: ::mode_t = 128;
-pub const S_IRUSR: ::mode_t = 256;
-pub const S_IRWXG: ::mode_t = 56;
-pub const S_IXGRP: ::mode_t = 8;
-pub const S_IWGRP: ::mode_t = 16;
-pub const S_IRGRP: ::mode_t = 32;
-pub const S_IRWXO: ::mode_t = 7;
-pub const S_IXOTH: ::mode_t = 1;
-pub const S_IWOTH: ::mode_t = 2;
-pub const S_IROTH: ::mode_t = 4;
-pub const F_OK: ::c_int = 0;
-pub const R_OK: ::c_int = 4;
-pub const W_OK: ::c_int = 2;
-pub const X_OK: ::c_int = 1;
-pub const STDIN_FILENO: ::c_int = 0;
-pub const STDOUT_FILENO: ::c_int = 1;
-pub const STDERR_FILENO: ::c_int = 2;
-pub const SIGHUP: ::c_int = 1;
-pub const SIGINT: ::c_int = 2;
-pub const SIGQUIT: ::c_int = 3;
-pub const SIGILL: ::c_int = 4;
-pub const SIGABRT: ::c_int = 6;
-pub const SIGFPE: ::c_int = 8;
-pub const SIGKILL: ::c_int = 9;
-pub const SIGSEGV: ::c_int = 11;
-pub const SIGPIPE: ::c_int = 13;
-pub const SIGALRM: ::c_int = 14;
-pub const SIGTERM: ::c_int = 15;
-
-pub const PROT_NONE: ::c_int = 0;
-pub const PROT_READ: ::c_int = 1;
-pub const PROT_WRITE: ::c_int = 2;
-pub const PROT_EXEC: ::c_int = 4;
-
-pub const XATTR_CREATE: ::c_int = 0x1;
-pub const XATTR_REPLACE: ::c_int = 0x2;
-
-cfg_if! {
-    if #[cfg(not(target_env = "uclibc"))] {
-        pub const LC_CTYPE: ::c_int = 0;
-        pub const LC_NUMERIC: ::c_int = 1;
-        pub const LC_TIME: ::c_int = 2;
-        pub const LC_COLLATE: ::c_int = 3;
-        pub const LC_MONETARY: ::c_int = 4;
-        pub const LC_MESSAGES: ::c_int = 5;
-        pub const LC_ALL: ::c_int = 6;
-    }
-}
-
-pub const LC_CTYPE_MASK: ::c_int = 1 << LC_CTYPE;
-pub const LC_NUMERIC_MASK: ::c_int = 1 << LC_NUMERIC;
-pub const LC_TIME_MASK: ::c_int = 1 << LC_TIME;
-pub const LC_COLLATE_MASK: ::c_int = 1 << LC_COLLATE;
-pub const LC_MONETARY_MASK: ::c_int = 1 << LC_MONETARY;
-pub const LC_MESSAGES_MASK: ::c_int = 1 << LC_MESSAGES;
-// LC_ALL_MASK defined per platform
-
-pub const MAP_FILE: ::c_int = 0x0000;
-pub const MAP_SHARED: ::c_int = 0x0001;
-pub const MAP_PRIVATE: ::c_int = 0x0002;
-pub const MAP_FIXED: ::c_int = 0x0010;
-
-pub const MAP_FAILED: *mut ::c_void = !0 as *mut ::c_void;
-
-// MS_ flags for msync(2)
-pub const MS_ASYNC: ::c_int = 0x0001;
-pub const MS_INVALIDATE: ::c_int = 0x0002;
-pub const MS_SYNC: ::c_int = 0x0004;
-
-// MS_ flags for mount(2)
-pub const MS_RDONLY: ::c_ulong = 0x01;
-pub const MS_NOSUID: ::c_ulong = 0x02;
-pub const MS_NODEV: ::c_ulong = 0x04;
-pub const MS_NOEXEC: ::c_ulong = 0x08;
-pub const MS_SYNCHRONOUS: ::c_ulong = 0x10;
-pub const MS_REMOUNT: ::c_ulong = 0x20;
-pub const MS_MANDLOCK: ::c_ulong = 0x40;
-pub const MS_DIRSYNC: ::c_ulong = 0x80;
-pub const MS_NOATIME: ::c_ulong = 0x0400;
-pub const MS_NODIRATIME: ::c_ulong = 0x0800;
-pub const MS_BIND: ::c_ulong = 0x1000;
-pub const MS_MOVE: ::c_ulong = 0x2000;
-pub const MS_REC: ::c_ulong = 0x4000;
-pub const MS_SILENT: ::c_ulong = 0x8000;
-pub const MS_POSIXACL: ::c_ulong = 0x010000;
-pub const MS_UNBINDABLE: ::c_ulong = 0x020000;
-pub const MS_PRIVATE: ::c_ulong = 0x040000;
-pub const MS_SLAVE: ::c_ulong = 0x080000;
-pub const MS_SHARED: ::c_ulong = 0x100000;
-pub const MS_RELATIME: ::c_ulong = 0x200000;
-pub const MS_KERNMOUNT: ::c_ulong = 0x400000;
-pub const MS_I_VERSION: ::c_ulong = 0x800000;
-pub const MS_STRICTATIME: ::c_ulong = 0x1000000;
-pub const MS_LAZYTIME: ::c_ulong = 0x2000000;
-pub const MS_ACTIVE: ::c_ulong = 0x40000000;
-pub const MS_MGC_VAL: ::c_ulong = 0xc0ed0000;
-pub const MS_MGC_MSK: ::c_ulong = 0xffff0000;
-
-pub const SCM_RIGHTS: ::c_int = 0x01;
-pub const SCM_CREDENTIALS: ::c_int = 0x02;
-
-pub const PROT_GROWSDOWN: ::c_int = 0x1000000;
-pub const PROT_GROWSUP: ::c_int = 0x2000000;
-
-pub const MAP_TYPE: ::c_int = 0x000f;
-
-pub const MADV_NORMAL: ::c_int = 0;
-pub const MADV_RANDOM: ::c_int = 1;
-pub const MADV_SEQUENTIAL: ::c_int = 2;
-pub const MADV_WILLNEED: ::c_int = 3;
-pub const MADV_DONTNEED: ::c_int = 4;
-pub const MADV_FREE: ::c_int = 8;
-pub const MADV_REMOVE: ::c_int = 9;
-pub const MADV_DONTFORK: ::c_int = 10;
-pub const MADV_DOFORK: ::c_int = 11;
-pub const MADV_MERGEABLE: ::c_int = 12;
-pub const MADV_UNMERGEABLE: ::c_int = 13;
-pub const MADV_HUGEPAGE: ::c_int = 14;
-pub const MADV_NOHUGEPAGE: ::c_int = 15;
-pub const MADV_DONTDUMP: ::c_int = 16;
-pub const MADV_DODUMP: ::c_int = 17;
-pub const MADV_HWPOISON: ::c_int = 100;
-
-pub const IFF_UP: ::c_int = 0x1;
-pub const IFF_BROADCAST: ::c_int = 0x2;
-pub const IFF_DEBUG: ::c_int = 0x4;
-pub const IFF_LOOPBACK: ::c_int = 0x8;
-pub const IFF_POINTOPOINT: ::c_int = 0x10;
-pub const IFF_NOTRAILERS: ::c_int = 0x20;
-pub const IFF_RUNNING: ::c_int = 0x40;
-pub const IFF_NOARP: ::c_int = 0x80;
-pub const IFF_PROMISC: ::c_int = 0x100;
-pub const IFF_ALLMULTI: ::c_int = 0x200;
-pub const IFF_MASTER: ::c_int = 0x400;
-pub const IFF_SLAVE: ::c_int = 0x800;
-pub const IFF_MULTICAST: ::c_int = 0x1000;
-pub const IFF_PORTSEL: ::c_int = 0x2000;
-pub const IFF_AUTOMEDIA: ::c_int = 0x4000;
-pub const IFF_DYNAMIC: ::c_int = 0x8000;
-
-pub const SOL_IP: ::c_int = 0;
-pub const SOL_TCP: ::c_int = 6;
-pub const SOL_UDP: ::c_int = 17;
-pub const SOL_IPV6: ::c_int = 41;
-pub const SOL_ICMPV6: ::c_int = 58;
-pub const SOL_RAW: ::c_int = 255;
-pub const SOL_DECNET: ::c_int = 261;
-pub const SOL_X25: ::c_int = 262;
-pub const SOL_PACKET: ::c_int = 263;
-pub const SOL_ATM: ::c_int = 264;
-pub const SOL_AAL: ::c_int = 265;
-pub const SOL_IRDA: ::c_int = 266;
-pub const SOL_NETBEUI: ::c_int = 267;
-pub const SOL_LLC: ::c_int = 268;
-pub const SOL_DCCP: ::c_int = 269;
-pub const SOL_NETLINK: ::c_int = 270;
-pub const SOL_TIPC: ::c_int = 271;
-pub const SOL_BLUETOOTH: ::c_int = 274;
-pub const SOL_ALG: ::c_int = 279;
-
-pub const AF_UNSPEC: ::c_int = 0;
-pub const AF_UNIX: ::c_int = 1;
-pub const AF_LOCAL: ::c_int = 1;
-pub const AF_INET: ::c_int = 2;
-pub const AF_AX25: ::c_int = 3;
-pub const AF_IPX: ::c_int = 4;
-pub const AF_APPLETALK: ::c_int = 5;
-pub const AF_NETROM: ::c_int = 6;
-pub const AF_BRIDGE: ::c_int = 7;
-pub const AF_ATMPVC: ::c_int = 8;
-pub const AF_X25: ::c_int = 9;
-pub const AF_INET6: ::c_int = 10;
-pub const AF_ROSE: ::c_int = 11;
-pub const AF_DECnet: ::c_int = 12;
-pub const AF_NETBEUI: ::c_int = 13;
-pub const AF_SECURITY: ::c_int = 14;
-pub const AF_KEY: ::c_int = 15;
-pub const AF_NETLINK: ::c_int = 16;
-pub const AF_ROUTE: ::c_int = AF_NETLINK;
-pub const AF_PACKET: ::c_int = 17;
-pub const AF_ASH: ::c_int = 18;
-pub const AF_ECONET: ::c_int = 19;
-pub const AF_ATMSVC: ::c_int = 20;
-pub const AF_RDS: ::c_int = 21;
-pub const AF_SNA: ::c_int = 22;
-pub const AF_IRDA: ::c_int = 23;
-pub const AF_PPPOX: ::c_int = 24;
-pub const AF_WANPIPE: ::c_int = 25;
-pub const AF_LLC: ::c_int = 26;
-pub const AF_CAN: ::c_int = 29;
-pub const AF_TIPC: ::c_int = 30;
-pub const AF_BLUETOOTH: ::c_int = 31;
-pub const AF_IUCV: ::c_int = 32;
-pub const AF_RXRPC: ::c_int = 33;
-pub const AF_ISDN: ::c_int = 34;
-pub const AF_PHONET: ::c_int = 35;
-pub const AF_IEEE802154: ::c_int = 36;
-pub const AF_CAIF: ::c_int = 37;
-pub const AF_ALG: ::c_int = 38;
-
-pub const PF_UNSPEC: ::c_int = AF_UNSPEC;
-pub const PF_UNIX: ::c_int = AF_UNIX;
-pub const PF_LOCAL: ::c_int = AF_LOCAL;
-pub const PF_INET: ::c_int = AF_INET;
-pub const PF_AX25: ::c_int = AF_AX25;
-pub const PF_IPX: ::c_int = AF_IPX;
-pub const PF_APPLETALK: ::c_int = AF_APPLETALK;
-pub const PF_NETROM: ::c_int = AF_NETROM;
-pub const PF_BRIDGE: ::c_int = AF_BRIDGE;
-pub const PF_ATMPVC: ::c_int = AF_ATMPVC;
-pub const PF_X25: ::c_int = AF_X25;
-pub const PF_INET6: ::c_int = AF_INET6;
-pub const PF_ROSE: ::c_int = AF_ROSE;
-pub const PF_DECnet: ::c_int = AF_DECnet;
-pub const PF_NETBEUI: ::c_int = AF_NETBEUI;
-pub const PF_SECURITY: ::c_int = AF_SECURITY;
-pub const PF_KEY: ::c_int = AF_KEY;
-pub const PF_NETLINK: ::c_int = AF_NETLINK;
-pub const PF_ROUTE: ::c_int = AF_ROUTE;
-pub const PF_PACKET: ::c_int = AF_PACKET;
-pub const PF_ASH: ::c_int = AF_ASH;
-pub const PF_ECONET: ::c_int = AF_ECONET;
-pub const PF_ATMSVC: ::c_int = AF_ATMSVC;
-pub const PF_RDS: ::c_int = AF_RDS;
-pub const PF_SNA: ::c_int = AF_SNA;
-pub const PF_IRDA: ::c_int = AF_IRDA;
-pub const PF_PPPOX: ::c_int = AF_PPPOX;
-pub const PF_WANPIPE: ::c_int = AF_WANPIPE;
-pub const PF_LLC: ::c_int = AF_LLC;
-pub const PF_CAN: ::c_int = AF_CAN;
-pub const PF_TIPC: ::c_int = AF_TIPC;
-pub const PF_BLUETOOTH: ::c_int = AF_BLUETOOTH;
-pub const PF_IUCV: ::c_int = AF_IUCV;
-pub const PF_RXRPC: ::c_int = AF_RXRPC;
-pub const PF_ISDN: ::c_int = AF_ISDN;
-pub const PF_PHONET: ::c_int = AF_PHONET;
-pub const PF_IEEE802154: ::c_int = AF_IEEE802154;
-pub const PF_CAIF: ::c_int = AF_CAIF;
-pub const PF_ALG: ::c_int = AF_ALG;
-
-pub const MSG_OOB: ::c_int = 1;
-pub const MSG_PEEK: ::c_int = 2;
-pub const MSG_DONTROUTE: ::c_int = 4;
-pub const MSG_CTRUNC: ::c_int = 8;
-pub const MSG_TRUNC: ::c_int = 0x20;
-pub const MSG_DONTWAIT: ::c_int = 0x40;
-pub const MSG_EOR: ::c_int = 0x80;
-pub const MSG_WAITALL: ::c_int = 0x100;
-pub const MSG_FIN: ::c_int = 0x200;
-pub const MSG_SYN: ::c_int = 0x400;
-pub const MSG_CONFIRM: ::c_int = 0x800;
-pub const MSG_RST: ::c_int = 0x1000;
-pub const MSG_ERRQUEUE: ::c_int = 0x2000;
-pub const MSG_NOSIGNAL: ::c_int = 0x4000;
-pub const MSG_MORE: ::c_int = 0x8000;
-pub const MSG_WAITFORONE: ::c_int = 0x10000;
-pub const MSG_FASTOPEN: ::c_int = 0x20000000;
-pub const MSG_CMSG_CLOEXEC: ::c_int = 0x40000000;
-
-pub const SCM_TIMESTAMP: ::c_int = SO_TIMESTAMP;
-
-pub const SOCK_RAW: ::c_int = 3;
-pub const SOCK_RDM: ::c_int = 4;
-pub const IP_TOS: ::c_int = 1;
-pub const IP_TTL: ::c_int = 2;
-pub const IP_HDRINCL: ::c_int = 3;
-pub const IP_OPTIONS: ::c_int = 4;
-pub const IP_ROUTER_ALERT: ::c_int = 5;
-pub const IP_RECVOPTS: ::c_int = 6;
-pub const IP_RETOPTS: ::c_int = 7;
-pub const IP_PKTINFO: ::c_int = 8;
-pub const IP_PKTOPTIONS: ::c_int = 9;
-pub const IP_MTU_DISCOVER: ::c_int = 10;
-pub const IP_RECVERR: ::c_int = 11;
-pub const IP_RECVTTL: ::c_int = 12;
-pub const IP_RECVTOS: ::c_int = 13;
-pub const IP_MTU: ::c_int = 14;
-pub const IP_FREEBIND: ::c_int = 15;
-pub const IP_IPSEC_POLICY: ::c_int = 16;
-pub const IP_XFRM_POLICY: ::c_int = 17;
-pub const IP_PASSSEC: ::c_int = 18;
-pub const IP_TRANSPARENT: ::c_int = 19;
-pub const IP_ORIGDSTADDR: ::c_int = 20;
-pub const IP_RECVORIGDSTADDR: ::c_int = IP_ORIGDSTADDR;
-pub const IP_MINTTL: ::c_int = 21;
-pub const IP_NODEFRAG: ::c_int = 22;
-pub const IP_CHECKSUM: ::c_int = 23;
-pub const IP_BIND_ADDRESS_NO_PORT: ::c_int = 24;
-pub const IP_MULTICAST_IF: ::c_int = 32;
-pub const IP_MULTICAST_TTL: ::c_int = 33;
-pub const IP_MULTICAST_LOOP: ::c_int = 34;
-pub const IP_ADD_MEMBERSHIP: ::c_int = 35;
-pub const IP_DROP_MEMBERSHIP: ::c_int = 36;
-pub const IP_UNBLOCK_SOURCE: ::c_int = 37;
-pub const IP_BLOCK_SOURCE: ::c_int = 38;
-pub const IP_ADD_SOURCE_MEMBERSHIP: ::c_int = 39;
-pub const IP_DROP_SOURCE_MEMBERSHIP: ::c_int = 40;
-pub const IP_MSFILTER: ::c_int = 41;
-pub const IP_MULTICAST_ALL: ::c_int = 49;
-pub const IP_UNICAST_IF: ::c_int = 50;
-
-pub const IP_DEFAULT_MULTICAST_TTL: ::c_int = 1;
-pub const IP_DEFAULT_MULTICAST_LOOP: ::c_int = 1;
-
-pub const IP_PMTUDISC_DONT: ::c_int = 0;
-pub const IP_PMTUDISC_WANT: ::c_int = 1;
-pub const IP_PMTUDISC_DO: ::c_int = 2;
-pub const IP_PMTUDISC_PROBE: ::c_int = 3;
-pub const IP_PMTUDISC_INTERFACE: ::c_int = 4;
-pub const IP_PMTUDISC_OMIT: ::c_int = 5;
-
-// IPPROTO_IP defined in src/unix/mod.rs
-/// Hop-by-hop option header
-pub const IPPROTO_HOPOPTS: ::c_int = 0;
-// IPPROTO_ICMP defined in src/unix/mod.rs
-/// group mgmt protocol
-pub const IPPROTO_IGMP: ::c_int = 2;
-/// for compatibility
-pub const IPPROTO_IPIP: ::c_int = 4;
-// IPPROTO_TCP defined in src/unix/mod.rs
-/// exterior gateway protocol
-pub const IPPROTO_EGP: ::c_int = 8;
-/// pup
-pub const IPPROTO_PUP: ::c_int = 12;
-// IPPROTO_UDP defined in src/unix/mod.rs
-/// xns idp
-pub const IPPROTO_IDP: ::c_int = 22;
-/// tp-4 w/ class negotiation
-pub const IPPROTO_TP: ::c_int = 29;
-/// DCCP
-pub const IPPROTO_DCCP: ::c_int = 33;
-// IPPROTO_IPV6 defined in src/unix/mod.rs
-/// IP6 routing header
-pub const IPPROTO_ROUTING: ::c_int = 43;
-/// IP6 fragmentation header
-pub const IPPROTO_FRAGMENT: ::c_int = 44;
-/// resource reservation
-pub const IPPROTO_RSVP: ::c_int = 46;
-/// General Routing Encap.
-pub const IPPROTO_GRE: ::c_int = 47;
-/// IP6 Encap Sec. Payload
-pub const IPPROTO_ESP: ::c_int = 50;
-/// IP6 Auth Header
-pub const IPPROTO_AH: ::c_int = 51;
-// IPPROTO_ICMPV6 defined in src/unix/mod.rs
-/// IP6 no next header
-pub const IPPROTO_NONE: ::c_int = 59;
-/// IP6 destination option
-pub const IPPROTO_DSTOPTS: ::c_int = 60;
-pub const IPPROTO_MTP: ::c_int = 92;
-/// encapsulation header
-pub const IPPROTO_ENCAP: ::c_int = 98;
-/// Protocol indep. multicast
-pub const IPPROTO_PIM: ::c_int = 103;
-/// IP Payload Comp. Protocol
-pub const IPPROTO_COMP: ::c_int = 108;
-/// SCTP
-pub const IPPROTO_SCTP: ::c_int = 132;
-pub const IPPROTO_MH: ::c_int = 135;
-pub const IPPROTO_UDPLITE: ::c_int = 136;
-/// raw IP packet
-pub const IPPROTO_RAW: ::c_int = 255;
-pub const IPPROTO_BEETPH: ::c_int = 94;
-pub const IPPROTO_MPLS: ::c_int = 137;
-
-pub const MCAST_EXCLUDE: ::c_int = 0;
-pub const MCAST_INCLUDE: ::c_int = 1;
-pub const MCAST_JOIN_GROUP: ::c_int = 42;
-pub const MCAST_BLOCK_SOURCE: ::c_int = 43;
-pub const MCAST_UNBLOCK_SOURCE: ::c_int = 44;
-pub const MCAST_LEAVE_GROUP: ::c_int = 45;
-pub const MCAST_JOIN_SOURCE_GROUP: ::c_int = 46;
-pub const MCAST_LEAVE_SOURCE_GROUP: ::c_int = 47;
-pub const MCAST_MSFILTER: ::c_int = 48;
-
-pub const IPV6_ADDRFORM: ::c_int = 1;
-pub const IPV6_2292PKTINFO: ::c_int = 2;
-pub const IPV6_2292HOPOPTS: ::c_int = 3;
-pub const IPV6_2292DSTOPTS: ::c_int = 4;
-pub const IPV6_2292RTHDR: ::c_int = 5;
-pub const IPV6_2292PKTOPTIONS: ::c_int = 6;
-pub const IPV6_CHECKSUM: ::c_int = 7;
-pub const IPV6_2292HOPLIMIT: ::c_int = 8;
-pub const IPV6_NEXTHOP: ::c_int = 9;
-pub const IPV6_AUTHHDR: ::c_int = 10;
-pub const IPV6_UNICAST_HOPS: ::c_int = 16;
-pub const IPV6_MULTICAST_IF: ::c_int = 17;
-pub const IPV6_MULTICAST_HOPS: ::c_int = 18;
-pub const IPV6_MULTICAST_LOOP: ::c_int = 19;
-pub const IPV6_ADD_MEMBERSHIP: ::c_int = 20;
-pub const IPV6_DROP_MEMBERSHIP: ::c_int = 21;
-pub const IPV6_ROUTER_ALERT: ::c_int = 22;
-pub const IPV6_MTU_DISCOVER: ::c_int = 23;
-pub const IPV6_MTU: ::c_int = 24;
-pub const IPV6_RECVERR: ::c_int = 25;
-pub const IPV6_V6ONLY: ::c_int = 26;
-pub const IPV6_JOIN_ANYCAST: ::c_int = 27;
-pub const IPV6_LEAVE_ANYCAST: ::c_int = 28;
-pub const IPV6_IPSEC_POLICY: ::c_int = 34;
-pub const IPV6_XFRM_POLICY: ::c_int = 35;
-pub const IPV6_HDRINCL: ::c_int = 36;
-pub const IPV6_RECVPKTINFO: ::c_int = 49;
-pub const IPV6_PKTINFO: ::c_int = 50;
-pub const IPV6_RECVHOPLIMIT: ::c_int = 51;
-pub const IPV6_HOPLIMIT: ::c_int = 52;
-pub const IPV6_RECVHOPOPTS: ::c_int = 53;
-pub const IPV6_HOPOPTS: ::c_int = 54;
-pub const IPV6_RTHDRDSTOPTS: ::c_int = 55;
-pub const IPV6_RECVRTHDR: ::c_int = 56;
-pub const IPV6_RTHDR: ::c_int = 57;
-pub const IPV6_RECVDSTOPTS: ::c_int = 58;
-pub const IPV6_DSTOPTS: ::c_int = 59;
-pub const IPV6_RECVPATHMTU: ::c_int = 60;
-pub const IPV6_PATHMTU: ::c_int = 61;
-pub const IPV6_DONTFRAG: ::c_int = 62;
-pub const IPV6_RECVTCLASS: ::c_int = 66;
-pub const IPV6_TCLASS: ::c_int = 67;
-pub const IPV6_AUTOFLOWLABEL: ::c_int = 70;
-pub const IPV6_ADDR_PREFERENCES: ::c_int = 72;
-pub const IPV6_MINHOPCOUNT: ::c_int = 73;
-pub const IPV6_ORIGDSTADDR: ::c_int = 74;
-pub const IPV6_RECVORIGDSTADDR: ::c_int = IPV6_ORIGDSTADDR;
-pub const IPV6_TRANSPARENT: ::c_int = 75;
-pub const IPV6_UNICAST_IF: ::c_int = 76;
-pub const IPV6_PREFER_SRC_TMP: ::c_int = 0x0001;
-pub const IPV6_PREFER_SRC_PUBLIC: ::c_int = 0x0002;
-pub const IPV6_PREFER_SRC_PUBTMP_DEFAULT: ::c_int = 0x0100;
-pub const IPV6_PREFER_SRC_COA: ::c_int = 0x0004;
-pub const IPV6_PREFER_SRC_HOME: ::c_int = 0x0400;
-pub const IPV6_PREFER_SRC_CGA: ::c_int = 0x0008;
-pub const IPV6_PREFER_SRC_NONCGA: ::c_int = 0x0800;
-
-pub const IPV6_PMTUDISC_DONT: ::c_int = 0;
-pub const IPV6_PMTUDISC_WANT: ::c_int = 1;
-pub const IPV6_PMTUDISC_DO: ::c_int = 2;
-pub const IPV6_PMTUDISC_PROBE: ::c_int = 3;
-pub const IPV6_PMTUDISC_INTERFACE: ::c_int = 4;
-pub const IPV6_PMTUDISC_OMIT: ::c_int = 5;
-
-pub const TCP_NODELAY: ::c_int = 1;
-pub const TCP_MAXSEG: ::c_int = 2;
-pub const TCP_CORK: ::c_int = 3;
-pub const TCP_KEEPIDLE: ::c_int = 4;
-pub const TCP_KEEPINTVL: ::c_int = 5;
-pub const TCP_KEEPCNT: ::c_int = 6;
-pub const TCP_SYNCNT: ::c_int = 7;
-pub const TCP_LINGER2: ::c_int = 8;
-pub const TCP_DEFER_ACCEPT: ::c_int = 9;
-pub const TCP_WINDOW_CLAMP: ::c_int = 10;
-pub const TCP_INFO: ::c_int = 11;
-pub const TCP_QUICKACK: ::c_int = 12;
-pub const TCP_CONGESTION: ::c_int = 13;
-pub const TCP_MD5SIG: ::c_int = 14;
-cfg_if! {
-    if #[cfg(all(target_os = "linux", any(target_env = "gnu", target_env = "musl")))] {
-        // WARN: deprecated
-        pub const TCP_COOKIE_TRANSACTIONS: ::c_int = 15;
-    }
-}
-pub const TCP_THIN_LINEAR_TIMEOUTS: ::c_int = 16;
-pub const TCP_THIN_DUPACK: ::c_int = 17;
-pub const TCP_USER_TIMEOUT: ::c_int = 18;
-pub const TCP_REPAIR: ::c_int = 19;
-pub const TCP_REPAIR_QUEUE: ::c_int = 20;
-pub const TCP_QUEUE_SEQ: ::c_int = 21;
-pub const TCP_REPAIR_OPTIONS: ::c_int = 22;
-pub const TCP_FASTOPEN: ::c_int = 23;
-pub const TCP_TIMESTAMP: ::c_int = 24;
-pub const TCP_NOTSENT_LOWAT: ::c_int = 25;
-pub const TCP_CC_INFO: ::c_int = 26;
-pub const TCP_SAVE_SYN: ::c_int = 27;
-pub const TCP_SAVED_SYN: ::c_int = 28;
-cfg_if! {
-    if #[cfg(not(target_os = "emscripten"))] {
-        // NOTE: emscripten doesn't support these options yet.
-
-        pub const TCP_REPAIR_WINDOW: ::c_int = 29;
-        pub const TCP_FASTOPEN_CONNECT: ::c_int = 30;
-        pub const TCP_ULP: ::c_int = 31;
-        pub const TCP_MD5SIG_EXT: ::c_int = 32;
-        pub const TCP_FASTOPEN_KEY: ::c_int = 33;
-        pub const TCP_FASTOPEN_NO_COOKIE: ::c_int = 34;
-        pub const TCP_ZEROCOPY_RECEIVE: ::c_int = 35;
-        pub const TCP_INQ: ::c_int = 36;
-        pub const TCP_CM_INQ: ::c_int = TCP_INQ;
-        // NOTE: Some CI images doesn't have this option yet.
-        // pub const TCP_TX_DELAY: ::c_int = 37;
-    }
-}
-
-pub const SO_DEBUG: ::c_int = 1;
-
-pub const SHUT_RD: ::c_int = 0;
-pub const SHUT_WR: ::c_int = 1;
-pub const SHUT_RDWR: ::c_int = 2;
-
-pub const LOCK_SH: ::c_int = 1;
-pub const LOCK_EX: ::c_int = 2;
-pub const LOCK_NB: ::c_int = 4;
-pub const LOCK_UN: ::c_int = 8;
-
-pub const SS_ONSTACK: ::c_int = 1;
-pub const SS_DISABLE: ::c_int = 2;
-
-pub const PATH_MAX: ::c_int = 4096;
-
-pub const UIO_MAXIOV: ::c_int = 1024;
-
-pub const FD_SETSIZE: usize = 1024;
-
-pub const EPOLLIN: ::c_int = 0x1;
-pub const EPOLLPRI: ::c_int = 0x2;
-pub const EPOLLOUT: ::c_int = 0x4;
-pub const EPOLLERR: ::c_int = 0x8;
-pub const EPOLLHUP: ::c_int = 0x10;
-pub const EPOLLRDNORM: ::c_int = 0x40;
-pub const EPOLLRDBAND: ::c_int = 0x80;
-pub const EPOLLWRNORM: ::c_int = 0x100;
-pub const EPOLLWRBAND: ::c_int = 0x200;
-pub const EPOLLMSG: ::c_int = 0x400;
-pub const EPOLLRDHUP: ::c_int = 0x2000;
-pub const EPOLLEXCLUSIVE: ::c_int = 0x10000000;
-pub const EPOLLWAKEUP: ::c_int = 0x20000000;
-pub const EPOLLONESHOT: ::c_int = 0x40000000;
-pub const EPOLLET: ::c_int = 0x80000000;
-
-pub const EPOLL_CTL_ADD: ::c_int = 1;
-pub const EPOLL_CTL_MOD: ::c_int = 3;
-pub const EPOLL_CTL_DEL: ::c_int = 2;
-
-pub const MNT_FORCE: ::c_int = 0x1;
-pub const MNT_DETACH: ::c_int = 0x2;
-pub const MNT_EXPIRE: ::c_int = 0x4;
-pub const UMOUNT_NOFOLLOW: ::c_int = 0x8;
-
-pub const Q_GETFMT: ::c_int = 0x800004;
-pub const Q_GETINFO: ::c_int = 0x800005;
-pub const Q_SETINFO: ::c_int = 0x800006;
-pub const QIF_BLIMITS: u32 = 1;
-pub const QIF_SPACE: u32 = 2;
-pub const QIF_ILIMITS: u32 = 4;
-pub const QIF_INODES: u32 = 8;
-pub const QIF_BTIME: u32 = 16;
-pub const QIF_ITIME: u32 = 32;
-pub const QIF_LIMITS: u32 = 5;
-pub const QIF_USAGE: u32 = 10;
-pub const QIF_TIMES: u32 = 48;
-pub const QIF_ALL: u32 = 63;
-
-pub const Q_SYNC: ::c_int = 0x800001;
-pub const Q_QUOTAON: ::c_int = 0x800002;
-pub const Q_QUOTAOFF: ::c_int = 0x800003;
-pub const Q_GETQUOTA: ::c_int = 0x800007;
-pub const Q_SETQUOTA: ::c_int = 0x800008;
-
-pub const TCIOFF: ::c_int = 2;
-pub const TCION: ::c_int = 3;
-pub const TCOOFF: ::c_int = 0;
-pub const TCOON: ::c_int = 1;
-pub const TCIFLUSH: ::c_int = 0;
-pub const TCOFLUSH: ::c_int = 1;
-pub const TCIOFLUSH: ::c_int = 2;
-pub const NL0: ::tcflag_t = 0x00000000;
-pub const NL1: ::tcflag_t = 0x00000100;
-pub const TAB0: ::tcflag_t = 0x00000000;
-pub const CR0: ::tcflag_t = 0x00000000;
-pub const FF0: ::tcflag_t = 0x00000000;
-pub const BS0: ::tcflag_t = 0x00000000;
-pub const VT0: ::tcflag_t = 0x00000000;
-pub const VERASE: usize = 2;
-pub const VKILL: usize = 3;
-pub const VINTR: usize = 0;
-pub const VQUIT: usize = 1;
-pub const VLNEXT: usize = 15;
-pub const IGNBRK: ::tcflag_t = 0x00000001;
-pub const BRKINT: ::tcflag_t = 0x00000002;
-pub const IGNPAR: ::tcflag_t = 0x00000004;
-pub const PARMRK: ::tcflag_t = 0x00000008;
-pub const INPCK: ::tcflag_t = 0x00000010;
-pub const ISTRIP: ::tcflag_t = 0x00000020;
-pub const INLCR: ::tcflag_t = 0x00000040;
-pub const IGNCR: ::tcflag_t = 0x00000080;
-pub const ICRNL: ::tcflag_t = 0x00000100;
-pub const IXANY: ::tcflag_t = 0x00000800;
-pub const IMAXBEL: ::tcflag_t = 0x00002000;
-pub const OPOST: ::tcflag_t = 0x1;
-pub const CS5: ::tcflag_t = 0x00000000;
-pub const CRTSCTS: ::tcflag_t = 0x80000000;
-pub const ECHO: ::tcflag_t = 0x00000008;
-pub const OCRNL: ::tcflag_t = 0o000010;
-pub const ONOCR: ::tcflag_t = 0o000020;
-pub const ONLRET: ::tcflag_t = 0o000040;
-pub const OFILL: ::tcflag_t = 0o000100;
-pub const OFDEL: ::tcflag_t = 0o000200;
-
-pub const CLONE_VM: ::c_int = 0x100;
-pub const CLONE_FS: ::c_int = 0x200;
-pub const CLONE_FILES: ::c_int = 0x400;
-pub const CLONE_SIGHAND: ::c_int = 0x800;
-pub const CLONE_PTRACE: ::c_int = 0x2000;
-pub const CLONE_VFORK: ::c_int = 0x4000;
-pub const CLONE_PARENT: ::c_int = 0x8000;
-pub const CLONE_THREAD: ::c_int = 0x10000;
-pub const CLONE_NEWNS: ::c_int = 0x20000;
-pub const CLONE_SYSVSEM: ::c_int = 0x40000;
-pub const CLONE_SETTLS: ::c_int = 0x80000;
-pub const CLONE_PARENT_SETTID: ::c_int = 0x100000;
-pub const CLONE_CHILD_CLEARTID: ::c_int = 0x200000;
-pub const CLONE_DETACHED: ::c_int = 0x400000;
-pub const CLONE_UNTRACED: ::c_int = 0x800000;
-pub const CLONE_CHILD_SETTID: ::c_int = 0x01000000;
-pub const CLONE_NEWCGROUP: ::c_int = 0x02000000;
-pub const CLONE_NEWUTS: ::c_int = 0x04000000;
-pub const CLONE_NEWIPC: ::c_int = 0x08000000;
-pub const CLONE_NEWUSER: ::c_int = 0x10000000;
-pub const CLONE_NEWPID: ::c_int = 0x20000000;
-pub const CLONE_NEWNET: ::c_int = 0x40000000;
-pub const CLONE_IO: ::c_int = 0x80000000;
-
-pub const WNOHANG: ::c_int = 0x00000001;
-pub const WUNTRACED: ::c_int = 0x00000002;
-pub const WSTOPPED: ::c_int = WUNTRACED;
-pub const WEXITED: ::c_int = 0x00000004;
-pub const WCONTINUED: ::c_int = 0x00000008;
-pub const WNOWAIT: ::c_int = 0x01000000;
-
-// Options for personality(2).
-pub const ADDR_NO_RANDOMIZE: ::c_int = 0x0040000;
-pub const MMAP_PAGE_ZERO: ::c_int = 0x0100000;
-pub const ADDR_COMPAT_LAYOUT: ::c_int = 0x0200000;
-pub const READ_IMPLIES_EXEC: ::c_int = 0x0400000;
-pub const ADDR_LIMIT_32BIT: ::c_int = 0x0800000;
-pub const SHORT_INODE: ::c_int = 0x1000000;
-pub const WHOLE_SECONDS: ::c_int = 0x2000000;
-pub const STICKY_TIMEOUTS: ::c_int = 0x4000000;
-pub const ADDR_LIMIT_3GB: ::c_int = 0x8000000;
-
-// Options set using PTRACE_SETOPTIONS.
-pub const PTRACE_O_TRACESYSGOOD: ::c_int = 0x00000001;
-pub const PTRACE_O_TRACEFORK: ::c_int = 0x00000002;
-pub const PTRACE_O_TRACEVFORK: ::c_int = 0x00000004;
-pub const PTRACE_O_TRACECLONE: ::c_int = 0x00000008;
-pub const PTRACE_O_TRACEEXEC: ::c_int = 0x00000010;
-pub const PTRACE_O_TRACEVFORKDONE: ::c_int = 0x00000020;
-pub const PTRACE_O_TRACEEXIT: ::c_int = 0x00000040;
-pub const PTRACE_O_TRACESECCOMP: ::c_int = 0x00000080;
-pub const PTRACE_O_SUSPEND_SECCOMP: ::c_int = 0x00200000;
-pub const PTRACE_O_EXITKILL: ::c_int = 0x00100000;
-pub const PTRACE_O_MASK: ::c_int = 0x003000ff;
-
-// Wait extended result codes for the above trace options.
-pub const PTRACE_EVENT_FORK: ::c_int = 1;
-pub const PTRACE_EVENT_VFORK: ::c_int = 2;
-pub const PTRACE_EVENT_CLONE: ::c_int = 3;
-pub const PTRACE_EVENT_EXEC: ::c_int = 4;
-pub const PTRACE_EVENT_VFORK_DONE: ::c_int = 5;
-pub const PTRACE_EVENT_EXIT: ::c_int = 6;
-pub const PTRACE_EVENT_SECCOMP: ::c_int = 7;
-
-pub const __WNOTHREAD: ::c_int = 0x20000000;
-pub const __WALL: ::c_int = 0x40000000;
-pub const __WCLONE: ::c_int = 0x80000000;
-
-pub const SPLICE_F_MOVE: ::c_uint = 0x01;
-pub const SPLICE_F_NONBLOCK: ::c_uint = 0x02;
-pub const SPLICE_F_MORE: ::c_uint = 0x04;
-pub const SPLICE_F_GIFT: ::c_uint = 0x08;
-
-pub const RTLD_LOCAL: ::c_int = 0;
-pub const RTLD_LAZY: ::c_int = 1;
-
-pub const POSIX_FADV_NORMAL: ::c_int = 0;
-pub const POSIX_FADV_RANDOM: ::c_int = 1;
-pub const POSIX_FADV_SEQUENTIAL: ::c_int = 2;
-pub const POSIX_FADV_WILLNEED: ::c_int = 3;
-
-pub const AT_FDCWD: ::c_int = -100;
-pub const AT_SYMLINK_NOFOLLOW: ::c_int = 0x100;
-pub const AT_REMOVEDIR: ::c_int = 0x200;
-pub const AT_SYMLINK_FOLLOW: ::c_int = 0x400;
-pub const AT_NO_AUTOMOUNT: ::c_int = 0x800;
-pub const AT_EMPTY_PATH: ::c_int = 0x1000;
-
-pub const LOG_CRON: ::c_int = 9 << 3;
-pub const LOG_AUTHPRIV: ::c_int = 10 << 3;
-pub const LOG_FTP: ::c_int = 11 << 3;
-pub const LOG_PERROR: ::c_int = 0x20;
-
-pub const PIPE_BUF: usize = 4096;
-
-pub const SI_LOAD_SHIFT: ::c_uint = 16;
-
-// si_code values for SIGBUS signal
-pub const BUS_ADRALN: ::c_int = 1;
-pub const BUS_ADRERR: ::c_int = 2;
-pub const BUS_OBJERR: ::c_int = 3;
-// Linux-specific si_code values for SIGBUS signal
-pub const BUS_MCEERR_AR: ::c_int = 4;
-pub const BUS_MCEERR_AO: ::c_int = 5;
-
-// si_code values for SIGCHLD signal
-pub const CLD_EXITED: ::c_int = 1;
-pub const CLD_KILLED: ::c_int = 2;
-pub const CLD_DUMPED: ::c_int = 3;
-pub const CLD_TRAPPED: ::c_int = 4;
-pub const CLD_STOPPED: ::c_int = 5;
-pub const CLD_CONTINUED: ::c_int = 6;
-
-pub const SIGEV_SIGNAL: ::c_int = 0;
-pub const SIGEV_NONE: ::c_int = 1;
-pub const SIGEV_THREAD: ::c_int = 2;
-
-pub const P_ALL: idtype_t = 0;
-pub const P_PID: idtype_t = 1;
-pub const P_PGID: idtype_t = 2;
-cfg_if! {
-    if #[cfg(not(target_os = "emscripten"))] {
-        pub const P_PIDFD: idtype_t = 3;
-    }
-}
-
-pub const UTIME_OMIT: c_long = 1073741822;
-pub const UTIME_NOW: c_long = 1073741823;
-
-pub const POLLIN: ::c_short = 0x1;
-pub const POLLPRI: ::c_short = 0x2;
-pub const POLLOUT: ::c_short = 0x4;
-pub const POLLERR: ::c_short = 0x8;
-pub const POLLHUP: ::c_short = 0x10;
-pub const POLLNVAL: ::c_short = 0x20;
-pub const POLLRDNORM: ::c_short = 0x040;
-pub const POLLRDBAND: ::c_short = 0x080;
-#[cfg(not(any(target_arch = "sparc", target_arch = "sparc64")))]
-pub const POLLRDHUP: ::c_short = 0x2000;
-#[cfg(any(target_arch = "sparc", target_arch = "sparc64"))]
-pub const POLLRDHUP: ::c_short = 0x800;
-
-pub const IPTOS_LOWDELAY: u8 = 0x10;
-pub const IPTOS_THROUGHPUT: u8 = 0x08;
-pub const IPTOS_RELIABILITY: u8 = 0x04;
-pub const IPTOS_MINCOST: u8 = 0x02;
-
-pub const IPTOS_PREC_NETCONTROL: u8 = 0xe0;
-pub const IPTOS_PREC_INTERNETCONTROL: u8 = 0xc0;
-pub const IPTOS_PREC_CRITIC_ECP: u8 = 0xa0;
-pub const IPTOS_PREC_FLASHOVERRIDE: u8 = 0x80;
-pub const IPTOS_PREC_FLASH: u8 = 0x60;
-pub const IPTOS_PREC_IMMEDIATE: u8 = 0x40;
-pub const IPTOS_PREC_PRIORITY: u8 = 0x20;
-pub const IPTOS_PREC_ROUTINE: u8 = 0x00;
-
-pub const IPTOS_ECN_MASK: u8 = 0x03;
-pub const IPTOS_ECN_ECT1: u8 = 0x01;
-pub const IPTOS_ECN_ECT0: u8 = 0x02;
-pub const IPTOS_ECN_CE: u8 = 0x03;
-
-pub const IPOPT_COPY: u8 = 0x80;
-pub const IPOPT_CLASS_MASK: u8 = 0x60;
-pub const IPOPT_NUMBER_MASK: u8 = 0x1f;
-
-pub const IPOPT_CONTROL: u8 = 0x00;
-pub const IPOPT_RESERVED1: u8 = 0x20;
-pub const IPOPT_MEASUREMENT: u8 = 0x40;
-pub const IPOPT_RESERVED2: u8 = 0x60;
-pub const IPOPT_END: u8 = 0 | IPOPT_CONTROL;
-pub const IPOPT_NOOP: u8 = 1 | IPOPT_CONTROL;
-pub const IPOPT_SEC: u8 = 2 | IPOPT_CONTROL | IPOPT_COPY;
-pub const IPOPT_LSRR: u8 = 3 | IPOPT_CONTROL | IPOPT_COPY;
-pub const IPOPT_TIMESTAMP: u8 = 4 | IPOPT_MEASUREMENT;
-pub const IPOPT_RR: u8 = 7 | IPOPT_CONTROL;
-pub const IPOPT_SID: u8 = 8 | IPOPT_CONTROL | IPOPT_COPY;
-pub const IPOPT_SSRR: u8 = 9 | IPOPT_CONTROL | IPOPT_COPY;
-pub const IPOPT_RA: u8 = 20 | IPOPT_CONTROL | IPOPT_COPY;
-pub const IPVERSION: u8 = 4;
-pub const MAXTTL: u8 = 255;
-pub const IPDEFTTL: u8 = 64;
-pub const IPOPT_OPTVAL: u8 = 0;
-pub const IPOPT_OLEN: u8 = 1;
-pub const IPOPT_OFFSET: u8 = 2;
-pub const IPOPT_MINOFF: u8 = 4;
-pub const MAX_IPOPTLEN: u8 = 40;
-pub const IPOPT_NOP: u8 = IPOPT_NOOP;
-pub const IPOPT_EOL: u8 = IPOPT_END;
-pub const IPOPT_TS: u8 = IPOPT_TIMESTAMP;
-pub const IPOPT_TS_TSONLY: u8 = 0;
-pub const IPOPT_TS_TSANDADDR: u8 = 1;
-pub const IPOPT_TS_PRESPEC: u8 = 3;
-
-pub const ARPOP_RREQUEST: u16 = 3;
-pub const ARPOP_RREPLY: u16 = 4;
-pub const ARPOP_InREQUEST: u16 = 8;
-pub const ARPOP_InREPLY: u16 = 9;
-pub const ARPOP_NAK: u16 = 10;
-
-pub const ATF_NETMASK: ::c_int = 0x20;
-pub const ATF_DONTPUB: ::c_int = 0x40;
-
-pub const ARPHRD_NETROM: u16 = 0;
-pub const ARPHRD_ETHER: u16 = 1;
-pub const ARPHRD_EETHER: u16 = 2;
-pub const ARPHRD_AX25: u16 = 3;
-pub const ARPHRD_PRONET: u16 = 4;
-pub const ARPHRD_CHAOS: u16 = 5;
-pub const ARPHRD_IEEE802: u16 = 6;
-pub const ARPHRD_ARCNET: u16 = 7;
-pub const ARPHRD_APPLETLK: u16 = 8;
-pub const ARPHRD_DLCI: u16 = 15;
-pub const ARPHRD_ATM: u16 = 19;
-pub const ARPHRD_METRICOM: u16 = 23;
-pub const ARPHRD_IEEE1394: u16 = 24;
-pub const ARPHRD_EUI64: u16 = 27;
-pub const ARPHRD_INFINIBAND: u16 = 32;
-
-pub const ARPHRD_SLIP: u16 = 256;
-pub const ARPHRD_CSLIP: u16 = 257;
-pub const ARPHRD_SLIP6: u16 = 258;
-pub const ARPHRD_CSLIP6: u16 = 259;
-pub const ARPHRD_RSRVD: u16 = 260;
-pub const ARPHRD_ADAPT: u16 = 264;
-pub const ARPHRD_ROSE: u16 = 270;
-pub const ARPHRD_X25: u16 = 271;
-pub const ARPHRD_HWX25: u16 = 272;
-pub const ARPHRD_CAN: u16 = 280;
-pub const ARPHRD_PPP: u16 = 512;
-pub const ARPHRD_CISCO: u16 = 513;
-pub const ARPHRD_HDLC: u16 = ARPHRD_CISCO;
-pub const ARPHRD_LAPB: u16 = 516;
-pub const ARPHRD_DDCMP: u16 = 517;
-pub const ARPHRD_RAWHDLC: u16 = 518;
-
-pub const ARPHRD_TUNNEL: u16 = 768;
-pub const ARPHRD_TUNNEL6: u16 = 769;
-pub const ARPHRD_FRAD: u16 = 770;
-pub const ARPHRD_SKIP: u16 = 771;
-pub const ARPHRD_LOOPBACK: u16 = 772;
-pub const ARPHRD_LOCALTLK: u16 = 773;
-pub const ARPHRD_FDDI: u16 = 774;
-pub const ARPHRD_BIF: u16 = 775;
-pub const ARPHRD_SIT: u16 = 776;
-pub const ARPHRD_IPDDP: u16 = 777;
-pub const ARPHRD_IPGRE: u16 = 778;
-pub const ARPHRD_PIMREG: u16 = 779;
-pub const ARPHRD_HIPPI: u16 = 780;
-pub const ARPHRD_ASH: u16 = 781;
-pub const ARPHRD_ECONET: u16 = 782;
-pub const ARPHRD_IRDA: u16 = 783;
-pub const ARPHRD_FCPP: u16 = 784;
-pub const ARPHRD_FCAL: u16 = 785;
-pub const ARPHRD_FCPL: u16 = 786;
-pub const ARPHRD_FCFABRIC: u16 = 787;
-pub const ARPHRD_IEEE802_TR: u16 = 800;
-pub const ARPHRD_IEEE80211: u16 = 801;
-pub const ARPHRD_IEEE80211_PRISM: u16 = 802;
-pub const ARPHRD_IEEE80211_RADIOTAP: u16 = 803;
-pub const ARPHRD_IEEE802154: u16 = 804;
-
-pub const ARPHRD_VOID: u16 = 0xFFFF;
-pub const ARPHRD_NONE: u16 = 0xFFFE;
-
-cfg_if! {
-    if #[cfg(target_os = "emscripten")] {
-        // Emscripten does not define any `*_SUPER_MAGIC` constants.
-    } else if #[cfg(not(target_arch = "s390x"))] {
-        pub const ADFS_SUPER_MAGIC: ::c_long = 0x0000adf5;
-        pub const AFFS_SUPER_MAGIC: ::c_long = 0x0000adff;
-        pub const AFS_SUPER_MAGIC: ::c_long = 0x5346414f;
-        pub const AUTOFS_SUPER_MAGIC: ::c_long = 0x0187;
-        pub const BPF_FS_MAGIC: ::c_long = 0xcafe4a11;
-        pub const BTRFS_SUPER_MAGIC: ::c_long = 0x9123683e;
-        pub const CGROUP2_SUPER_MAGIC: ::c_long = 0x63677270;
-        pub const CGROUP_SUPER_MAGIC: ::c_long = 0x27e0eb;
-        pub const CODA_SUPER_MAGIC: ::c_long = 0x73757245;
-        pub const CRAMFS_MAGIC: ::c_long = 0x28cd3d45;
-        pub const DEBUGFS_MAGIC: ::c_long = 0x64626720;
-        pub const DEVPTS_SUPER_MAGIC: ::c_long = 0x1cd1;
-        pub const ECRYPTFS_SUPER_MAGIC: ::c_long = 0xf15f;
-        pub const EFS_SUPER_MAGIC: ::c_long = 0x00414a53;
-        pub const EXT2_SUPER_MAGIC: ::c_long = 0x0000ef53;
-        pub const EXT3_SUPER_MAGIC: ::c_long = 0x0000ef53;
-        pub const EXT4_SUPER_MAGIC: ::c_long = 0x0000ef53;
-        pub const F2FS_SUPER_MAGIC: ::c_long = 0xf2f52010;
-        pub const FUSE_SUPER_MAGIC: ::c_long = 0x65735546;
-        pub const FUTEXFS_SUPER_MAGIC: ::c_long = 0xbad1dea;
-        pub const HOSTFS_SUPER_MAGIC: ::c_long = 0x00c0ffee;
-        pub const HPFS_SUPER_MAGIC: ::c_long = 0xf995e849;
-        pub const HUGETLBFS_MAGIC: ::c_long = 0x958458f6;
-        pub const ISOFS_SUPER_MAGIC: ::c_long = 0x00009660;
-        pub const JFFS2_SUPER_MAGIC: ::c_long = 0x000072b6;
-        pub const MINIX2_SUPER_MAGIC2: ::c_long = 0x00002478;
-        pub const MINIX2_SUPER_MAGIC: ::c_long = 0x00002468;
-        pub const MINIX3_SUPER_MAGIC: ::c_long = 0x4d5a;
-        pub const MINIX_SUPER_MAGIC2: ::c_long = 0x0000138f;
-        pub const MINIX_SUPER_MAGIC: ::c_long = 0x0000137f;
-        pub const MSDOS_SUPER_MAGIC: ::c_long = 0x00004d44;
-        pub const NCP_SUPER_MAGIC: ::c_long = 0x0000564c;
-        pub const NFS_SUPER_MAGIC: ::c_long = 0x00006969;
-        pub const NILFS_SUPER_MAGIC: ::c_long = 0x3434;
-        pub const OCFS2_SUPER_MAGIC: ::c_long = 0x7461636f;
-        pub const OPENPROM_SUPER_MAGIC: ::c_long = 0x00009fa1;
-        pub const OVERLAYFS_SUPER_MAGIC: ::c_long = 0x794c7630;
-        pub const PROC_SUPER_MAGIC: ::c_long = 0x00009fa0;
-        pub const QNX4_SUPER_MAGIC: ::c_long = 0x0000002f;
-        pub const QNX6_SUPER_MAGIC: ::c_long = 0x68191122;
-        pub const RDTGROUP_SUPER_MAGIC: ::c_long = 0x7655821;
-        pub const REISERFS_SUPER_MAGIC: ::c_long = 0x52654973;
-        pub const SECURITYFS_MAGIC: ::c_long = 0x73636673;
-        pub const SELINUX_MAGIC: ::c_long = 0xf97cff8c;
-        pub const SMACK_MAGIC: ::c_long = 0x43415d53;
-        pub const SMB_SUPER_MAGIC: ::c_long = 0x0000517b;
-        pub const SYSFS_MAGIC: ::c_long = 0x62656572;
-        pub const TMPFS_MAGIC: ::c_long = 0x01021994;
-        pub const TRACEFS_MAGIC: ::c_long = 0x74726163;
-        pub const UDF_SUPER_MAGIC: ::c_long = 0x15013346;
-        pub const USBDEVICE_SUPER_MAGIC: ::c_long = 0x00009fa2;
-        pub const XENFS_SUPER_MAGIC: ::c_long = 0xabba1974;
-        pub const NSFS_MAGIC: ::c_long = 0x6e736673;
-    } else if #[cfg(target_arch = "s390x")] {
-        pub const ADFS_SUPER_MAGIC: ::c_uint = 0x0000adf5;
-        pub const AFFS_SUPER_MAGIC: ::c_uint = 0x0000adff;
-        pub const AFS_SUPER_MAGIC: ::c_uint = 0x5346414f;
-        pub const AUTOFS_SUPER_MAGIC: ::c_uint = 0x0187;
-        pub const BPF_FS_MAGIC: ::c_uint = 0xcafe4a11;
-        pub const BTRFS_SUPER_MAGIC: ::c_uint = 0x9123683e;
-        pub const CGROUP2_SUPER_MAGIC: ::c_uint = 0x63677270;
-        pub const CGROUP_SUPER_MAGIC: ::c_uint = 0x27e0eb;
-        pub const CODA_SUPER_MAGIC: ::c_uint = 0x73757245;
-        pub const CRAMFS_MAGIC: ::c_uint = 0x28cd3d45;
-        pub const DEBUGFS_MAGIC: ::c_uint = 0x64626720;
-        pub const DEVPTS_SUPER_MAGIC: ::c_uint = 0x1cd1;
-        pub const ECRYPTFS_SUPER_MAGIC: ::c_uint = 0xf15f;
-        pub const EFS_SUPER_MAGIC: ::c_uint = 0x00414a53;
-        pub const EXT2_SUPER_MAGIC: ::c_uint = 0x0000ef53;
-        pub const EXT3_SUPER_MAGIC: ::c_uint = 0x0000ef53;
-        pub const EXT4_SUPER_MAGIC: ::c_uint = 0x0000ef53;
-        pub const F2FS_SUPER_MAGIC: ::c_uint = 0xf2f52010;
-        pub const FUSE_SUPER_MAGIC: ::c_uint = 0x65735546;
-        pub const FUTEXFS_SUPER_MAGIC: ::c_uint = 0xbad1dea;
-        pub const HOSTFS_SUPER_MAGIC: ::c_uint = 0x00c0ffee;
-        pub const HPFS_SUPER_MAGIC: ::c_uint = 0xf995e849;
-        pub const HUGETLBFS_MAGIC: ::c_uint = 0x958458f6;
-        pub const ISOFS_SUPER_MAGIC: ::c_uint = 0x00009660;
-        pub const JFFS2_SUPER_MAGIC: ::c_uint = 0x000072b6;
-        pub const MINIX2_SUPER_MAGIC2: ::c_uint = 0x00002478;
-        pub const MINIX2_SUPER_MAGIC: ::c_uint = 0x00002468;
-        pub const MINIX3_SUPER_MAGIC: ::c_uint = 0x4d5a;
-        pub const MINIX_SUPER_MAGIC2: ::c_uint = 0x0000138f;
-        pub const MINIX_SUPER_MAGIC: ::c_uint = 0x0000137f;
-        pub const MSDOS_SUPER_MAGIC: ::c_uint = 0x00004d44;
-        pub const NCP_SUPER_MAGIC: ::c_uint = 0x0000564c;
-        pub const NFS_SUPER_MAGIC: ::c_uint = 0x00006969;
-        pub const NILFS_SUPER_MAGIC: ::c_uint = 0x3434;
-        pub const OCFS2_SUPER_MAGIC: ::c_uint = 0x7461636f;
-        pub const OPENPROM_SUPER_MAGIC: ::c_uint = 0x00009fa1;
-        pub const OVERLAYFS_SUPER_MAGIC: ::c_uint = 0x794c7630;
-        pub const PROC_SUPER_MAGIC: ::c_uint = 0x00009fa0;
-        pub const QNX4_SUPER_MAGIC: ::c_uint = 0x0000002f;
-        pub const QNX6_SUPER_MAGIC: ::c_uint = 0x68191122;
-        pub const RDTGROUP_SUPER_MAGIC: ::c_uint = 0x7655821;
-        pub const REISERFS_SUPER_MAGIC: ::c_uint = 0x52654973;
-        pub const SECURITYFS_MAGIC: ::c_uint = 0x73636673;
-        pub const SELINUX_MAGIC: ::c_uint = 0xf97cff8c;
-        pub const SMACK_MAGIC: ::c_uint = 0x43415d53;
-        pub const SMB_SUPER_MAGIC: ::c_uint = 0x0000517b;
-        pub const SYSFS_MAGIC: ::c_uint = 0x62656572;
-        pub const TMPFS_MAGIC: ::c_uint = 0x01021994;
-        pub const TRACEFS_MAGIC: ::c_uint = 0x74726163;
-        pub const UDF_SUPER_MAGIC: ::c_uint = 0x15013346;
-        pub const USBDEVICE_SUPER_MAGIC: ::c_uint = 0x00009fa2;
-        pub const XENFS_SUPER_MAGIC: ::c_uint = 0xabba1974;
-        pub const NSFS_MAGIC: ::c_uint = 0x6e736673;
-    }
-}
-
-const_fn! {
-    {const} fn CMSG_ALIGN(len: usize) -> usize {
-        len + ::mem::size_of::<usize>() - 1 & !(::mem::size_of::<usize>() - 1)
-    }
-}
-
-f! {
-    pub fn CMSG_FIRSTHDR(mhdr: *const msghdr) -> *mut cmsghdr {
-        if (*mhdr).msg_controllen as usize >= ::mem::size_of::<cmsghdr>() {
-            (*mhdr).msg_control as *mut cmsghdr
-        } else {
-            0 as *mut cmsghdr
-        }
-    }
-
-    pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut ::c_uchar {
-        cmsg.offset(1) as *mut ::c_uchar
-    }
-
-    pub {const} fn CMSG_SPACE(length: ::c_uint) -> ::c_uint {
-        (CMSG_ALIGN(length as usize) + CMSG_ALIGN(::mem::size_of::<cmsghdr>()))
-            as ::c_uint
-    }
-
-    pub fn CMSG_LEN(length: ::c_uint) -> ::c_uint {
-        CMSG_ALIGN(::mem::size_of::<cmsghdr>()) as ::c_uint + length
-    }
-
-    pub fn FD_CLR(fd: ::c_int, set: *mut fd_set) -> () {
-        let fd = fd as usize;
-        let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8;
-        (*set).fds_bits[fd / size] &= !(1 << (fd % size));
-        return
-    }
-
-    pub fn FD_ISSET(fd: ::c_int, set: *const fd_set) -> bool {
-        let fd = fd as usize;
-        let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8;
-        return ((*set).fds_bits[fd / size] & (1 << (fd % size))) != 0
-    }
-
-    pub fn FD_SET(fd: ::c_int, set: *mut fd_set) -> () {
-        let fd = fd as usize;
-        let size = ::mem::size_of_val(&(*set).fds_bits[0]) * 8;
-        (*set).fds_bits[fd / size] |= 1 << (fd % size);
-        return
-    }
-
-    pub fn FD_ZERO(set: *mut fd_set) -> () {
-        for slot in (*set).fds_bits.iter_mut() {
-            *slot = 0;
-        }
-    }
-}
-
-safe_f! {
-    pub fn SIGRTMAX() -> ::c_int {
-        unsafe { __libc_current_sigrtmax() }
-    }
-
-    pub fn SIGRTMIN() -> ::c_int {
-        unsafe { __libc_current_sigrtmin() }
-    }
-
-    pub {const} fn WIFSTOPPED(status: ::c_int) -> bool {
-        (status & 0xff) == 0x7f
-    }
-
-    pub {const} fn WSTOPSIG(status: ::c_int) -> ::c_int {
-        (status >> 8) & 0xff
-    }
-
-    pub {const} fn WIFCONTINUED(status: ::c_int) -> bool {
-        status == 0xffff
-    }
-
-    pub {const} fn WIFSIGNALED(status: ::c_int) -> bool {
-        ((status & 0x7f) + 1) as i8 >= 2
-    }
-
-    pub {const} fn WTERMSIG(status: ::c_int) -> ::c_int {
-        status & 0x7f
-    }
-
-    pub {const} fn WIFEXITED(status: ::c_int) -> bool {
-        (status & 0x7f) == 0
-    }
-
-    pub {const} fn WEXITSTATUS(status: ::c_int) -> ::c_int {
-        (status >> 8) & 0xff
-    }
-
-    pub {const} fn WCOREDUMP(status: ::c_int) -> bool {
-        (status & 0x80) != 0
-    }
-
-    pub {const} fn W_EXITCODE(ret: ::c_int, sig: ::c_int) -> ::c_int {
-        (ret << 8) | sig
-    }
-
-    pub {const} fn W_STOPCODE(sig: ::c_int) -> ::c_int {
-        (sig << 8) | 0x7f
-    }
-
-    pub {const} fn QCMD(cmd: ::c_int, type_: ::c_int) -> ::c_int {
-        (cmd << 8) | (type_ & 0x00ff)
-    }
-
-    pub {const} fn IPOPT_COPIED(o: u8) -> u8 {
-        o & IPOPT_COPY
-    }
-
-    pub {const} fn IPOPT_CLASS(o: u8) -> u8 {
-        o & IPOPT_CLASS_MASK
-    }
-
-    pub {const} fn IPOPT_NUMBER(o: u8) -> u8 {
-        o & IPOPT_NUMBER_MASK
-    }
-
-    pub {const} fn IPTOS_ECN(x: u8) -> u8 {
-        x & ::IPTOS_ECN_MASK
-    }
-}
-
-extern "C" {
-    #[doc(hidden)]
-    pub fn __libc_current_sigrtmax() -> ::c_int;
-    #[doc(hidden)]
-    pub fn __libc_current_sigrtmin() -> ::c_int;
-
-    pub fn sem_destroy(sem: *mut sem_t) -> ::c_int;
-    pub fn sem_init(sem: *mut sem_t, pshared: ::c_int, value: ::c_uint) -> ::c_int;
-    pub fn fdatasync(fd: ::c_int) -> ::c_int;
-    pub fn mincore(addr: *mut ::c_void, len: ::size_t, vec: *mut ::c_uchar) -> ::c_int;
-
-    pub fn clock_getres(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int;
-    pub fn clock_gettime(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int;
-    pub fn clock_settime(clk_id: ::clockid_t, tp: *const ::timespec) -> ::c_int;
-    pub fn clock_getcpuclockid(pid: ::pid_t, clk_id: *mut ::clockid_t) -> ::c_int;
-
-    pub fn dirfd(dirp: *mut ::DIR) -> ::c_int;
-
-    pub fn pthread_getattr_np(native: ::pthread_t, attr: *mut ::pthread_attr_t) -> ::c_int;
-    pub fn pthread_attr_getstack(
-        attr: *const ::pthread_attr_t,
-        stackaddr: *mut *mut ::c_void,
-        stacksize: *mut ::size_t,
-    ) -> ::c_int;
-    pub fn memalign(align: ::size_t, size: ::size_t) -> *mut ::c_void;
-    pub fn setgroups(ngroups: ::size_t, ptr: *const ::gid_t) -> ::c_int;
-    pub fn pipe2(fds: *mut ::c_int, flags: ::c_int) -> ::c_int;
-    pub fn statfs(path: *const ::c_char, buf: *mut statfs) -> ::c_int;
-    pub fn statfs64(path: *const ::c_char, buf: *mut statfs64) -> ::c_int;
-    pub fn fstatfs(fd: ::c_int, buf: *mut statfs) -> ::c_int;
-    pub fn fstatfs64(fd: ::c_int, buf: *mut statfs64) -> ::c_int;
-    pub fn statvfs64(path: *const ::c_char, buf: *mut statvfs64) -> ::c_int;
-    pub fn fstatvfs64(fd: ::c_int, buf: *mut statvfs64) -> ::c_int;
-    pub fn memrchr(cx: *const ::c_void, c: ::c_int, n: ::size_t) -> *mut ::c_void;
-
-    pub fn posix_fadvise(fd: ::c_int, offset: ::off_t, len: ::off_t, advise: ::c_int) -> ::c_int;
-    pub fn posix_fadvise64(
-        fd: ::c_int,
-        offset: ::off64_t,
-        len: ::off64_t,
-        advise: ::c_int,
-    ) -> ::c_int;
-    pub fn futimens(fd: ::c_int, times: *const ::timespec) -> ::c_int;
-    pub fn utimensat(
-        dirfd: ::c_int,
-        path: *const ::c_char,
-        times: *const ::timespec,
-        flag: ::c_int,
-    ) -> ::c_int;
-    pub fn duplocale(base: ::locale_t) -> ::locale_t;
-    pub fn freelocale(loc: ::locale_t);
-    pub fn newlocale(mask: ::c_int, locale: *const ::c_char, base: ::locale_t) -> ::locale_t;
-    pub fn uselocale(loc: ::locale_t) -> ::locale_t;
-    pub fn creat64(path: *const c_char, mode: mode_t) -> ::c_int;
-    pub fn fstat64(fildes: ::c_int, buf: *mut stat64) -> ::c_int;
-    pub fn fstatat64(
-        dirfd: ::c_int,
-        pathname: *const c_char,
-        buf: *mut stat64,
-        flags: ::c_int,
-    ) -> ::c_int;
-    pub fn ftruncate64(fd: ::c_int, length: off64_t) -> ::c_int;
-    pub fn lseek64(fd: ::c_int, offset: off64_t, whence: ::c_int) -> off64_t;
-    pub fn lstat64(path: *const c_char, buf: *mut stat64) -> ::c_int;
-    pub fn mmap64(
-        addr: *mut ::c_void,
-        len: ::size_t,
-        prot: ::c_int,
-        flags: ::c_int,
-        fd: ::c_int,
-        offset: off64_t,
-    ) -> *mut ::c_void;
-    pub fn open64(path: *const c_char, oflag: ::c_int, ...) -> ::c_int;
-    pub fn openat64(fd: ::c_int, path: *const c_char, oflag: ::c_int, ...) -> ::c_int;
-    pub fn pread64(fd: ::c_int, buf: *mut ::c_void, count: ::size_t, offset: off64_t) -> ::ssize_t;
-    pub fn pwrite64(
-        fd: ::c_int,
-        buf: *const ::c_void,
-        count: ::size_t,
-        offset: off64_t,
-    ) -> ::ssize_t;
-    pub fn readdir64(dirp: *mut ::DIR) -> *mut ::dirent64;
-    pub fn readdir64_r(
-        dirp: *mut ::DIR,
-        entry: *mut ::dirent64,
-        result: *mut *mut ::dirent64,
-    ) -> ::c_int;
-    pub fn stat64(path: *const c_char, buf: *mut stat64) -> ::c_int;
-    pub fn truncate64(path: *const c_char, length: off64_t) -> ::c_int;
-
-    pub fn mknodat(
-        dirfd: ::c_int,
-        pathname: *const ::c_char,
-        mode: ::mode_t,
-        dev: dev_t,
-    ) -> ::c_int;
-    pub fn pthread_condattr_getclock(
-        attr: *const pthread_condattr_t,
-        clock_id: *mut clockid_t,
-    ) -> ::c_int;
-    pub fn pthread_condattr_setclock(
-        attr: *mut pthread_condattr_t,
-        clock_id: ::clockid_t,
-    ) -> ::c_int;
-    pub fn pthread_condattr_setpshared(attr: *mut pthread_condattr_t, pshared: ::c_int) -> ::c_int;
-    pub fn pthread_mutexattr_setpshared(
-        attr: *mut pthread_mutexattr_t,
-        pshared: ::c_int,
-    ) -> ::c_int;
-    pub fn pthread_rwlockattr_getpshared(
-        attr: *const pthread_rwlockattr_t,
-        val: *mut ::c_int,
-    ) -> ::c_int;
-    pub fn pthread_rwlockattr_setpshared(attr: *mut pthread_rwlockattr_t, val: ::c_int) -> ::c_int;
-    pub fn ptsname_r(fd: ::c_int, buf: *mut ::c_char, buflen: ::size_t) -> ::c_int;
-    pub fn clearenv() -> ::c_int;
-    pub fn waitid(idtype: idtype_t, id: id_t, infop: *mut ::siginfo_t, options: ::c_int)
-        -> ::c_int;
-    pub fn getresuid(ruid: *mut ::uid_t, euid: *mut ::uid_t, suid: *mut ::uid_t) -> ::c_int;
-    pub fn getresgid(rgid: *mut ::gid_t, egid: *mut ::gid_t, sgid: *mut ::gid_t) -> ::c_int;
-    pub fn acct(filename: *const ::c_char) -> ::c_int;
-    pub fn brk(addr: *mut ::c_void) -> ::c_int;
-    pub fn sbrk(increment: ::intptr_t) -> *mut ::c_void;
-    #[deprecated(
-        since = "0.2.66",
-        note = "causes memory corruption, see rust-lang/libc#1596"
-    )]
-    pub fn vfork() -> ::pid_t;
-    pub fn setresgid(rgid: ::gid_t, egid: ::gid_t, sgid: ::gid_t) -> ::c_int;
-    pub fn setresuid(ruid: ::uid_t, euid: ::uid_t, suid: ::uid_t) -> ::c_int;
-    pub fn wait4(
-        pid: ::pid_t,
-        status: *mut ::c_int,
-        options: ::c_int,
-        rusage: *mut ::rusage,
-    ) -> ::pid_t;
-    pub fn login_tty(fd: ::c_int) -> ::c_int;
-    pub fn execvpe(
-        file: *const ::c_char,
-        argv: *const *const ::c_char,
-        envp: *const *const ::c_char,
-    ) -> ::c_int;
-    pub fn fexecve(
-        fd: ::c_int,
-        argv: *const *const ::c_char,
-        envp: *const *const ::c_char,
-    ) -> ::c_int;
-    pub fn getifaddrs(ifap: *mut *mut ::ifaddrs) -> ::c_int;
-    pub fn freeifaddrs(ifa: *mut ::ifaddrs);
-    pub fn bind(socket: ::c_int, address: *const ::sockaddr, address_len: ::socklen_t) -> ::c_int;
-
-    pub fn writev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t;
-    pub fn readv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t;
-
-    pub fn sendmsg(fd: ::c_int, msg: *const ::msghdr, flags: ::c_int) -> ::ssize_t;
-    pub fn recvmsg(fd: ::c_int, msg: *mut ::msghdr, flags: ::c_int) -> ::ssize_t;
-    pub fn uname(buf: *mut ::utsname) -> ::c_int;
-}
-
-cfg_if! {
-    if #[cfg(not(target_env = "uclibc"))] {
-        extern "C" {
-            pub fn preadv64(
-                fd: ::c_int,
-                iov: *const ::iovec,
-                iovcnt: ::c_int,
-                offset: ::off64_t,
-            ) -> ::ssize_t;
-            pub fn pwritev64(
-                fd: ::c_int,
-                iov: *const ::iovec,
-                iovcnt: ::c_int,
-                offset: ::off64_t,
-            ) -> ::ssize_t;
-            // uclibc has separate non-const version of this function
-            pub fn forkpty(
-                amaster: *mut ::c_int,
-                name: *mut ::c_char,
-                termp: *const termios,
-                winp: *const ::winsize,
-            ) -> ::pid_t;
-            // uclibc has separate non-const version of this function
-            pub fn openpty(
-                amaster: *mut ::c_int,
-                aslave: *mut ::c_int,
-                name: *mut ::c_char,
-                termp: *const termios,
-                winp: *const ::winsize,
-            ) -> ::c_int;
-        }
-    }
-}
-
-cfg_if! {
-    if #[cfg(target_os = "emscripten")] {
-        mod emscripten;
-        pub use self::emscripten::*;
-    } else if #[cfg(target_os = "linux")] {
-        mod linux;
-        pub use self::linux::*;
-    } else if #[cfg(target_os = "l4re")] {
-        mod linux;
-        pub use self::linux::*;
-    } else if #[cfg(target_os = "android")] {
-        mod android;
-        pub use self::android::*;
-    } else {
-        // Unknown target_os
-    }
-}
-
-
\ No newline at end of file diff --git a/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/mod.rs.html b/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/mod.rs.html deleted file mode 100644 index b6a435c..0000000 --- a/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/src/libc/unix/mod.rs.html +++ /dev/null @@ -1,3108 +0,0 @@ -mod.rs - source
1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
-21
-22
-23
-24
-25
-26
-27
-28
-29
-30
-31
-32
-33
-34
-35
-36
-37
-38
-39
-40
-41
-42
-43
-44
-45
-46
-47
-48
-49
-50
-51
-52
-53
-54
-55
-56
-57
-58
-59
-60
-61
-62
-63
-64
-65
-66
-67
-68
-69
-70
-71
-72
-73
-74
-75
-76
-77
-78
-79
-80
-81
-82
-83
-84
-85
-86
-87
-88
-89
-90
-91
-92
-93
-94
-95
-96
-97
-98
-99
-100
-101
-102
-103
-104
-105
-106
-107
-108
-109
-110
-111
-112
-113
-114
-115
-116
-117
-118
-119
-120
-121
-122
-123
-124
-125
-126
-127
-128
-129
-130
-131
-132
-133
-134
-135
-136
-137
-138
-139
-140
-141
-142
-143
-144
-145
-146
-147
-148
-149
-150
-151
-152
-153
-154
-155
-156
-157
-158
-159
-160
-161
-162
-163
-164
-165
-166
-167
-168
-169
-170
-171
-172
-173
-174
-175
-176
-177
-178
-179
-180
-181
-182
-183
-184
-185
-186
-187
-188
-189
-190
-191
-192
-193
-194
-195
-196
-197
-198
-199
-200
-201
-202
-203
-204
-205
-206
-207
-208
-209
-210
-211
-212
-213
-214
-215
-216
-217
-218
-219
-220
-221
-222
-223
-224
-225
-226
-227
-228
-229
-230
-231
-232
-233
-234
-235
-236
-237
-238
-239
-240
-241
-242
-243
-244
-245
-246
-247
-248
-249
-250
-251
-252
-253
-254
-255
-256
-257
-258
-259
-260
-261
-262
-263
-264
-265
-266
-267
-268
-269
-270
-271
-272
-273
-274
-275
-276
-277
-278
-279
-280
-281
-282
-283
-284
-285
-286
-287
-288
-289
-290
-291
-292
-293
-294
-295
-296
-297
-298
-299
-300
-301
-302
-303
-304
-305
-306
-307
-308
-309
-310
-311
-312
-313
-314
-315
-316
-317
-318
-319
-320
-321
-322
-323
-324
-325
-326
-327
-328
-329
-330
-331
-332
-333
-334
-335
-336
-337
-338
-339
-340
-341
-342
-343
-344
-345
-346
-347
-348
-349
-350
-351
-352
-353
-354
-355
-356
-357
-358
-359
-360
-361
-362
-363
-364
-365
-366
-367
-368
-369
-370
-371
-372
-373
-374
-375
-376
-377
-378
-379
-380
-381
-382
-383
-384
-385
-386
-387
-388
-389
-390
-391
-392
-393
-394
-395
-396
-397
-398
-399
-400
-401
-402
-403
-404
-405
-406
-407
-408
-409
-410
-411
-412
-413
-414
-415
-416
-417
-418
-419
-420
-421
-422
-423
-424
-425
-426
-427
-428
-429
-430
-431
-432
-433
-434
-435
-436
-437
-438
-439
-440
-441
-442
-443
-444
-445
-446
-447
-448
-449
-450
-451
-452
-453
-454
-455
-456
-457
-458
-459
-460
-461
-462
-463
-464
-465
-466
-467
-468
-469
-470
-471
-472
-473
-474
-475
-476
-477
-478
-479
-480
-481
-482
-483
-484
-485
-486
-487
-488
-489
-490
-491
-492
-493
-494
-495
-496
-497
-498
-499
-500
-501
-502
-503
-504
-505
-506
-507
-508
-509
-510
-511
-512
-513
-514
-515
-516
-517
-518
-519
-520
-521
-522
-523
-524
-525
-526
-527
-528
-529
-530
-531
-532
-533
-534
-535
-536
-537
-538
-539
-540
-541
-542
-543
-544
-545
-546
-547
-548
-549
-550
-551
-552
-553
-554
-555
-556
-557
-558
-559
-560
-561
-562
-563
-564
-565
-566
-567
-568
-569
-570
-571
-572
-573
-574
-575
-576
-577
-578
-579
-580
-581
-582
-583
-584
-585
-586
-587
-588
-589
-590
-591
-592
-593
-594
-595
-596
-597
-598
-599
-600
-601
-602
-603
-604
-605
-606
-607
-608
-609
-610
-611
-612
-613
-614
-615
-616
-617
-618
-619
-620
-621
-622
-623
-624
-625
-626
-627
-628
-629
-630
-631
-632
-633
-634
-635
-636
-637
-638
-639
-640
-641
-642
-643
-644
-645
-646
-647
-648
-649
-650
-651
-652
-653
-654
-655
-656
-657
-658
-659
-660
-661
-662
-663
-664
-665
-666
-667
-668
-669
-670
-671
-672
-673
-674
-675
-676
-677
-678
-679
-680
-681
-682
-683
-684
-685
-686
-687
-688
-689
-690
-691
-692
-693
-694
-695
-696
-697
-698
-699
-700
-701
-702
-703
-704
-705
-706
-707
-708
-709
-710
-711
-712
-713
-714
-715
-716
-717
-718
-719
-720
-721
-722
-723
-724
-725
-726
-727
-728
-729
-730
-731
-732
-733
-734
-735
-736
-737
-738
-739
-740
-741
-742
-743
-744
-745
-746
-747
-748
-749
-750
-751
-752
-753
-754
-755
-756
-757
-758
-759
-760
-761
-762
-763
-764
-765
-766
-767
-768
-769
-770
-771
-772
-773
-774
-775
-776
-777
-778
-779
-780
-781
-782
-783
-784
-785
-786
-787
-788
-789
-790
-791
-792
-793
-794
-795
-796
-797
-798
-799
-800
-801
-802
-803
-804
-805
-806
-807
-808
-809
-810
-811
-812
-813
-814
-815
-816
-817
-818
-819
-820
-821
-822
-823
-824
-825
-826
-827
-828
-829
-830
-831
-832
-833
-834
-835
-836
-837
-838
-839
-840
-841
-842
-843
-844
-845
-846
-847
-848
-849
-850
-851
-852
-853
-854
-855
-856
-857
-858
-859
-860
-861
-862
-863
-864
-865
-866
-867
-868
-869
-870
-871
-872
-873
-874
-875
-876
-877
-878
-879
-880
-881
-882
-883
-884
-885
-886
-887
-888
-889
-890
-891
-892
-893
-894
-895
-896
-897
-898
-899
-900
-901
-902
-903
-904
-905
-906
-907
-908
-909
-910
-911
-912
-913
-914
-915
-916
-917
-918
-919
-920
-921
-922
-923
-924
-925
-926
-927
-928
-929
-930
-931
-932
-933
-934
-935
-936
-937
-938
-939
-940
-941
-942
-943
-944
-945
-946
-947
-948
-949
-950
-951
-952
-953
-954
-955
-956
-957
-958
-959
-960
-961
-962
-963
-964
-965
-966
-967
-968
-969
-970
-971
-972
-973
-974
-975
-976
-977
-978
-979
-980
-981
-982
-983
-984
-985
-986
-987
-988
-989
-990
-991
-992
-993
-994
-995
-996
-997
-998
-999
-1000
-1001
-1002
-1003
-1004
-1005
-1006
-1007
-1008
-1009
-1010
-1011
-1012
-1013
-1014
-1015
-1016
-1017
-1018
-1019
-1020
-1021
-1022
-1023
-1024
-1025
-1026
-1027
-1028
-1029
-1030
-1031
-1032
-1033
-1034
-1035
-1036
-1037
-1038
-1039
-1040
-1041
-1042
-1043
-1044
-1045
-1046
-1047
-1048
-1049
-1050
-1051
-1052
-1053
-1054
-1055
-1056
-1057
-1058
-1059
-1060
-1061
-1062
-1063
-1064
-1065
-1066
-1067
-1068
-1069
-1070
-1071
-1072
-1073
-1074
-1075
-1076
-1077
-1078
-1079
-1080
-1081
-1082
-1083
-1084
-1085
-1086
-1087
-1088
-1089
-1090
-1091
-1092
-1093
-1094
-1095
-1096
-1097
-1098
-1099
-1100
-1101
-1102
-1103
-1104
-1105
-1106
-1107
-1108
-1109
-1110
-1111
-1112
-1113
-1114
-1115
-1116
-1117
-1118
-1119
-1120
-1121
-1122
-1123
-1124
-1125
-1126
-1127
-1128
-1129
-1130
-1131
-1132
-1133
-1134
-1135
-1136
-1137
-1138
-1139
-1140
-1141
-1142
-1143
-1144
-1145
-1146
-1147
-1148
-1149
-1150
-1151
-1152
-1153
-1154
-1155
-1156
-1157
-1158
-1159
-1160
-1161
-1162
-1163
-1164
-1165
-1166
-1167
-1168
-1169
-1170
-1171
-1172
-1173
-1174
-1175
-1176
-1177
-1178
-1179
-1180
-1181
-1182
-1183
-1184
-1185
-1186
-1187
-1188
-1189
-1190
-1191
-1192
-1193
-1194
-1195
-1196
-1197
-1198
-1199
-1200
-1201
-1202
-1203
-1204
-1205
-1206
-1207
-1208
-1209
-1210
-1211
-1212
-1213
-1214
-1215
-1216
-1217
-1218
-1219
-1220
-1221
-1222
-1223
-1224
-1225
-1226
-1227
-1228
-1229
-1230
-1231
-1232
-1233
-1234
-1235
-1236
-1237
-1238
-1239
-1240
-1241
-1242
-1243
-1244
-1245
-1246
-1247
-1248
-1249
-1250
-1251
-1252
-1253
-1254
-1255
-1256
-1257
-1258
-1259
-1260
-1261
-1262
-1263
-1264
-1265
-1266
-1267
-1268
-1269
-1270
-1271
-1272
-1273
-1274
-1275
-1276
-1277
-1278
-1279
-1280
-1281
-1282
-1283
-1284
-1285
-1286
-1287
-1288
-1289
-1290
-1291
-1292
-1293
-1294
-1295
-1296
-1297
-1298
-1299
-1300
-1301
-1302
-1303
-1304
-1305
-1306
-1307
-1308
-1309
-1310
-1311
-1312
-1313
-1314
-1315
-1316
-1317
-1318
-1319
-1320
-1321
-1322
-1323
-1324
-1325
-1326
-1327
-1328
-1329
-1330
-1331
-1332
-1333
-1334
-1335
-1336
-1337
-1338
-1339
-1340
-1341
-1342
-1343
-1344
-1345
-1346
-1347
-1348
-1349
-1350
-1351
-1352
-1353
-1354
-1355
-1356
-1357
-1358
-1359
-1360
-1361
-1362
-1363
-1364
-1365
-1366
-1367
-1368
-1369
-1370
-1371
-1372
-1373
-1374
-1375
-1376
-1377
-1378
-1379
-1380
-1381
-1382
-1383
-1384
-1385
-1386
-1387
-1388
-1389
-1390
-1391
-1392
-1393
-1394
-1395
-1396
-1397
-1398
-1399
-1400
-1401
-1402
-1403
-1404
-1405
-1406
-1407
-1408
-1409
-1410
-1411
-1412
-1413
-1414
-1415
-1416
-1417
-1418
-1419
-1420
-1421
-1422
-1423
-1424
-1425
-1426
-1427
-1428
-1429
-1430
-1431
-1432
-1433
-1434
-1435
-1436
-1437
-1438
-1439
-1440
-1441
-1442
-1443
-1444
-1445
-1446
-1447
-1448
-1449
-1450
-1451
-1452
-1453
-1454
-1455
-1456
-1457
-1458
-1459
-1460
-1461
-1462
-1463
-1464
-1465
-1466
-1467
-1468
-1469
-1470
-1471
-1472
-1473
-1474
-1475
-1476
-1477
-1478
-1479
-1480
-1481
-1482
-1483
-1484
-1485
-1486
-1487
-1488
-1489
-1490
-1491
-1492
-1493
-1494
-1495
-1496
-1497
-1498
-1499
-1500
-1501
-1502
-1503
-1504
-1505
-1506
-1507
-1508
-1509
-1510
-1511
-1512
-1513
-1514
-1515
-1516
-1517
-1518
-1519
-1520
-1521
-1522
-1523
-1524
-1525
-1526
-1527
-1528
-1529
-1530
-1531
-1532
-1533
-1534
-1535
-1536
-1537
-1538
-1539
-1540
-1541
-1542
-1543
-1544
-1545
-1546
-1547
-1548
-1549
-1550
-1551
-1552
-1553
-
//! Definitions found commonly among almost all Unix derivatives
-//!
-//! More functions and definitions can be found in the more specific modules
-//! according to the platform in question.
-
-pub type c_schar = i8;
-pub type c_uchar = u8;
-pub type c_short = i16;
-pub type c_ushort = u16;
-pub type c_int = i32;
-pub type c_uint = u32;
-pub type c_float = f32;
-pub type c_double = f64;
-pub type c_longlong = i64;
-pub type c_ulonglong = u64;
-pub type intmax_t = i64;
-pub type uintmax_t = u64;
-
-pub type size_t = usize;
-pub type ptrdiff_t = isize;
-pub type intptr_t = isize;
-pub type uintptr_t = usize;
-pub type ssize_t = isize;
-
-pub type pid_t = i32;
-pub type in_addr_t = u32;
-pub type in_port_t = u16;
-pub type sighandler_t = ::size_t;
-pub type cc_t = ::c_uchar;
-
-cfg_if! {
-    if #[cfg(any(target_os = "espidf", target_os = "horizon"))] {
-        pub type uid_t = ::c_ushort;
-        pub type gid_t = ::c_ushort;
-    } else {
-        pub type uid_t = u32;
-        pub type gid_t = u32;
-    }
-}
-
-#[cfg_attr(feature = "extra_traits", derive(Debug))]
-pub enum DIR {}
-impl ::Copy for DIR {}
-impl ::Clone for DIR {
-    fn clone(&self) -> DIR {
-        *self
-    }
-}
-pub type locale_t = *mut ::c_void;
-
-s! {
-    pub struct group {
-        pub gr_name: *mut ::c_char,
-        pub gr_passwd: *mut ::c_char,
-        pub gr_gid: ::gid_t,
-        pub gr_mem: *mut *mut ::c_char,
-    }
-
-    pub struct utimbuf {
-        pub actime: time_t,
-        pub modtime: time_t,
-    }
-
-    pub struct timeval {
-        pub tv_sec: time_t,
-        pub tv_usec: suseconds_t,
-    }
-
-    // linux x32 compatibility
-    // See https://sourceware.org/bugzilla/show_bug.cgi?id=16437
-    pub struct timespec {
-        pub tv_sec: time_t,
-        #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
-        pub tv_nsec: i64,
-        #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
-        pub tv_nsec: ::c_long,
-    }
-
-    pub struct rlimit {
-        pub rlim_cur: rlim_t,
-        pub rlim_max: rlim_t,
-    }
-
-    pub struct rusage {
-        pub ru_utime: timeval,
-        pub ru_stime: timeval,
-        pub ru_maxrss: c_long,
-        #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
-        __pad1: u32,
-        pub ru_ixrss: c_long,
-        #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
-        __pad2: u32,
-        pub ru_idrss: c_long,
-        #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
-        __pad3: u32,
-        pub ru_isrss: c_long,
-        #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
-        __pad4: u32,
-        pub ru_minflt: c_long,
-        #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
-        __pad5: u32,
-        pub ru_majflt: c_long,
-        #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
-        __pad6: u32,
-        pub ru_nswap: c_long,
-        #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
-        __pad7: u32,
-        pub ru_inblock: c_long,
-        #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
-        __pad8: u32,
-        pub ru_oublock: c_long,
-        #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
-        __pad9: u32,
-        pub ru_msgsnd: c_long,
-        #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
-        __pad10: u32,
-        pub ru_msgrcv: c_long,
-        #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
-        __pad11: u32,
-        pub ru_nsignals: c_long,
-        #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
-        __pad12: u32,
-        pub ru_nvcsw: c_long,
-        #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
-        __pad13: u32,
-        pub ru_nivcsw: c_long,
-        #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
-        __pad14: u32,
-
-        #[cfg(any(target_env = "musl", target_os = "emscripten"))]
-        __reserved: [c_long; 16],
-    }
-
-    pub struct ipv6_mreq {
-        pub ipv6mr_multiaddr: in6_addr,
-        #[cfg(target_os = "android")]
-        pub ipv6mr_interface: ::c_int,
-        #[cfg(not(target_os = "android"))]
-        pub ipv6mr_interface: ::c_uint,
-    }
-
-    pub struct hostent {
-        pub h_name: *mut ::c_char,
-        pub h_aliases: *mut *mut ::c_char,
-        pub h_addrtype: ::c_int,
-        pub h_length: ::c_int,
-        pub h_addr_list: *mut *mut ::c_char,
-    }
-
-    pub struct iovec {
-        pub iov_base: *mut ::c_void,
-        pub iov_len: ::size_t,
-    }
-
-    pub struct pollfd {
-        pub fd: ::c_int,
-        pub events: ::c_short,
-        pub revents: ::c_short,
-    }
-
-    pub struct winsize {
-        pub ws_row: ::c_ushort,
-        pub ws_col: ::c_ushort,
-        pub ws_xpixel: ::c_ushort,
-        pub ws_ypixel: ::c_ushort,
-    }
-
-    pub struct linger {
-        pub l_onoff: ::c_int,
-        pub l_linger: ::c_int,
-    }
-
-    pub struct sigval {
-        // Actually a union of an int and a void*
-        pub sival_ptr: *mut ::c_void
-    }
-
-    // <sys/time.h>
-    pub struct itimerval {
-        pub it_interval: ::timeval,
-        pub it_value: ::timeval,
-    }
-
-    // <sys/times.h>
-    pub struct tms {
-        pub tms_utime: ::clock_t,
-        pub tms_stime: ::clock_t,
-        pub tms_cutime: ::clock_t,
-        pub tms_cstime: ::clock_t,
-    }
-
-    pub struct servent {
-        pub s_name: *mut ::c_char,
-        pub s_aliases: *mut *mut ::c_char,
-        pub s_port: ::c_int,
-        pub s_proto: *mut ::c_char,
-    }
-
-    pub struct protoent {
-        pub p_name: *mut ::c_char,
-        pub p_aliases: *mut *mut ::c_char,
-        pub p_proto: ::c_int,
-    }
-}
-
-pub const INT_MIN: c_int = -2147483648;
-pub const INT_MAX: c_int = 2147483647;
-
-pub const SIG_DFL: sighandler_t = 0 as sighandler_t;
-pub const SIG_IGN: sighandler_t = 1 as sighandler_t;
-pub const SIG_ERR: sighandler_t = !0 as sighandler_t;
-
-pub const DT_UNKNOWN: u8 = 0;
-pub const DT_FIFO: u8 = 1;
-pub const DT_CHR: u8 = 2;
-pub const DT_DIR: u8 = 4;
-pub const DT_BLK: u8 = 6;
-pub const DT_REG: u8 = 8;
-pub const DT_LNK: u8 = 10;
-pub const DT_SOCK: u8 = 12;
-
-cfg_if! {
-    if #[cfg(not(target_os = "redox"))] {
-        pub const FD_CLOEXEC: ::c_int = 0x1;
-    }
-}
-
-pub const USRQUOTA: ::c_int = 0;
-pub const GRPQUOTA: ::c_int = 1;
-
-pub const SIGIOT: ::c_int = 6;
-
-pub const S_ISUID: ::mode_t = 0x800;
-pub const S_ISGID: ::mode_t = 0x400;
-pub const S_ISVTX: ::mode_t = 0x200;
-
-cfg_if! {
-    if #[cfg(not(any(target_os = "haiku", target_os = "illumos",
-                     target_os = "solaris")))] {
-        pub const IF_NAMESIZE: ::size_t = 16;
-        pub const IFNAMSIZ: ::size_t = IF_NAMESIZE;
-    }
-}
-
-pub const LOG_EMERG: ::c_int = 0;
-pub const LOG_ALERT: ::c_int = 1;
-pub const LOG_CRIT: ::c_int = 2;
-pub const LOG_ERR: ::c_int = 3;
-pub const LOG_WARNING: ::c_int = 4;
-pub const LOG_NOTICE: ::c_int = 5;
-pub const LOG_INFO: ::c_int = 6;
-pub const LOG_DEBUG: ::c_int = 7;
-
-pub const LOG_KERN: ::c_int = 0;
-pub const LOG_USER: ::c_int = 1 << 3;
-pub const LOG_MAIL: ::c_int = 2 << 3;
-pub const LOG_DAEMON: ::c_int = 3 << 3;
-pub const LOG_AUTH: ::c_int = 4 << 3;
-pub const LOG_SYSLOG: ::c_int = 5 << 3;
-pub const LOG_LPR: ::c_int = 6 << 3;
-pub const LOG_NEWS: ::c_int = 7 << 3;
-pub const LOG_UUCP: ::c_int = 8 << 3;
-pub const LOG_LOCAL0: ::c_int = 16 << 3;
-pub const LOG_LOCAL1: ::c_int = 17 << 3;
-pub const LOG_LOCAL2: ::c_int = 18 << 3;
-pub const LOG_LOCAL3: ::c_int = 19 << 3;
-pub const LOG_LOCAL4: ::c_int = 20 << 3;
-pub const LOG_LOCAL5: ::c_int = 21 << 3;
-pub const LOG_LOCAL6: ::c_int = 22 << 3;
-pub const LOG_LOCAL7: ::c_int = 23 << 3;
-
-cfg_if! {
-    if #[cfg(not(target_os = "haiku"))] {
-        pub const LOG_PID: ::c_int = 0x01;
-        pub const LOG_CONS: ::c_int = 0x02;
-        pub const LOG_ODELAY: ::c_int = 0x04;
-        pub const LOG_NDELAY: ::c_int = 0x08;
-        pub const LOG_NOWAIT: ::c_int = 0x10;
-    }
-}
-pub const LOG_PRIMASK: ::c_int = 7;
-pub const LOG_FACMASK: ::c_int = 0x3f8;
-
-pub const PRIO_MIN: ::c_int = -20;
-pub const PRIO_MAX: ::c_int = 20;
-
-pub const IPPROTO_ICMP: ::c_int = 1;
-pub const IPPROTO_ICMPV6: ::c_int = 58;
-pub const IPPROTO_TCP: ::c_int = 6;
-pub const IPPROTO_UDP: ::c_int = 17;
-pub const IPPROTO_IP: ::c_int = 0;
-pub const IPPROTO_IPV6: ::c_int = 41;
-
-pub const INADDR_LOOPBACK: in_addr_t = 2130706433;
-pub const INADDR_ANY: in_addr_t = 0;
-pub const INADDR_BROADCAST: in_addr_t = 4294967295;
-pub const INADDR_NONE: in_addr_t = 4294967295;
-
-pub const ARPOP_REQUEST: u16 = 1;
-pub const ARPOP_REPLY: u16 = 2;
-
-pub const ATF_COM: ::c_int = 0x02;
-pub const ATF_PERM: ::c_int = 0x04;
-pub const ATF_PUBL: ::c_int = 0x08;
-pub const ATF_USETRAILERS: ::c_int = 0x10;
-
-cfg_if! {
-    if #[cfg(any(target_os = "l4re", target_os = "espidf"))] {
-        // required libraries for L4Re and the ESP-IDF framework are linked externally, ATM
-    } else if #[cfg(feature = "std")] {
-        // cargo build, don't pull in anything extra as the libstd dep
-        // already pulls in all libs.
-    } else if #[cfg(all(target_os = "linux",
-                        any(target_env = "gnu", target_env = "uclibc"),
-                        feature = "rustc-dep-of-std"))] {
-        #[link(name = "util", kind = "static", modifiers = "-bundle",
-            cfg(target_feature = "crt-static"))]
-        #[link(name = "rt", kind = "static", modifiers = "-bundle",
-            cfg(target_feature = "crt-static"))]
-        #[link(name = "pthread", kind = "static", modifiers = "-bundle",
-            cfg(target_feature = "crt-static"))]
-        #[link(name = "m", kind = "static", modifiers = "-bundle",
-            cfg(target_feature = "crt-static"))]
-        #[link(name = "dl", kind = "static", modifiers = "-bundle",
-            cfg(target_feature = "crt-static"))]
-        #[link(name = "c", kind = "static", modifiers = "-bundle",
-            cfg(target_feature = "crt-static"))]
-        #[link(name = "gcc_eh", kind = "static", modifiers = "-bundle",
-            cfg(target_feature = "crt-static"))]
-        #[link(name = "gcc", kind = "static", modifiers = "-bundle",
-            cfg(target_feature = "crt-static"))]
-        #[link(name = "c", kind = "static", modifiers = "-bundle",
-            cfg(target_feature = "crt-static"))]
-        #[link(name = "util", cfg(not(target_feature = "crt-static")))]
-        #[link(name = "rt", cfg(not(target_feature = "crt-static")))]
-        #[link(name = "pthread", cfg(not(target_feature = "crt-static")))]
-        #[link(name = "m", cfg(not(target_feature = "crt-static")))]
-        #[link(name = "dl", cfg(not(target_feature = "crt-static")))]
-        #[link(name = "c", cfg(not(target_feature = "crt-static")))]
-        extern {}
-    } else if #[cfg(target_env = "musl")] {
-        #[cfg_attr(feature = "rustc-dep-of-std",
-                   link(name = "c", kind = "static", modifiers = "-bundle",
-                        cfg(target_feature = "crt-static")))]
-        #[cfg_attr(feature = "rustc-dep-of-std",
-                   link(name = "c", cfg(not(target_feature = "crt-static"))))]
-        extern {}
-    } else if #[cfg(target_os = "emscripten")] {
-        #[link(name = "c")]
-        extern {}
-    } else if #[cfg(all(target_os = "android", feature = "rustc-dep-of-std"))] {
-        #[link(name = "c", kind = "static", modifiers = "-bundle",
-            cfg(target_feature = "crt-static"))]
-        #[link(name = "m", kind = "static", modifiers = "-bundle",
-            cfg(target_feature = "crt-static"))]
-        #[link(name = "m", cfg(not(target_feature = "crt-static")))]
-        #[link(name = "c", cfg(not(target_feature = "crt-static")))]
-        extern {}
-    } else if #[cfg(any(target_os = "macos",
-                        target_os = "ios",
-                        target_os = "tvos",
-                        target_os = "watchos",
-                        target_os = "android",
-                        target_os = "openbsd"))] {
-        #[link(name = "c")]
-        #[link(name = "m")]
-        extern {}
-    } else if #[cfg(target_os = "haiku")] {
-        #[link(name = "root")]
-        #[link(name = "network")]
-        extern {}
-    } else if #[cfg(target_env = "newlib")] {
-        #[link(name = "c")]
-        #[link(name = "m")]
-        extern {}
-    } else if #[cfg(target_os = "hermit")] {
-        // no_default_libraries is set to false for HermitCore, so only a link
-        // to "pthread" needs to be added.
-        #[link(name = "pthread")]
-        extern {}
-    } else if #[cfg(target_env = "illumos")] {
-        #[link(name = "c")]
-        #[link(name = "m")]
-        extern {}
-    } else if #[cfg(target_os = "redox")] {
-        #[cfg_attr(feature = "rustc-dep-of-std",
-                   link(name = "c", kind = "static", modifiers = "-bundle",
-                        cfg(target_feature = "crt-static")))]
-        #[cfg_attr(feature = "rustc-dep-of-std",
-                   link(name = "c", cfg(not(target_feature = "crt-static"))))]
-        extern {}
-    } else {
-        #[link(name = "c")]
-        #[link(name = "m")]
-        #[link(name = "rt")]
-        #[link(name = "pthread")]
-        extern {}
-    }
-}
-
-#[cfg_attr(feature = "extra_traits", derive(Debug))]
-pub enum FILE {}
-impl ::Copy for FILE {}
-impl ::Clone for FILE {
-    fn clone(&self) -> FILE {
-        *self
-    }
-}
-#[cfg_attr(feature = "extra_traits", derive(Debug))]
-pub enum fpos_t {} // FIXME: fill this out with a struct
-impl ::Copy for fpos_t {}
-impl ::Clone for fpos_t {
-    fn clone(&self) -> fpos_t {
-        *self
-    }
-}
-
-extern "C" {
-    pub fn isalnum(c: c_int) -> c_int;
-    pub fn isalpha(c: c_int) -> c_int;
-    pub fn iscntrl(c: c_int) -> c_int;
-    pub fn isdigit(c: c_int) -> c_int;
-    pub fn isgraph(c: c_int) -> c_int;
-    pub fn islower(c: c_int) -> c_int;
-    pub fn isprint(c: c_int) -> c_int;
-    pub fn ispunct(c: c_int) -> c_int;
-    pub fn isspace(c: c_int) -> c_int;
-    pub fn isupper(c: c_int) -> c_int;
-    pub fn isxdigit(c: c_int) -> c_int;
-    pub fn isblank(c: c_int) -> c_int;
-    pub fn tolower(c: c_int) -> c_int;
-    pub fn toupper(c: c_int) -> c_int;
-    pub fn qsort(
-        base: *mut c_void,
-        num: size_t,
-        size: size_t,
-        compar: ::Option<unsafe extern "C" fn(*const c_void, *const c_void) -> c_int>,
-    );
-    pub fn bsearch(
-        key: *const c_void,
-        base: *const c_void,
-        num: size_t,
-        size: size_t,
-        compar: ::Option<unsafe extern "C" fn(*const c_void, *const c_void) -> c_int>,
-    ) -> *mut c_void;
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "fopen$UNIX2003"
-    )]
-    pub fn fopen(filename: *const c_char, mode: *const c_char) -> *mut FILE;
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "freopen$UNIX2003"
-    )]
-    pub fn freopen(filename: *const c_char, mode: *const c_char, file: *mut FILE) -> *mut FILE;
-    pub fn fmemopen(buf: *mut c_void, size: size_t, mode: *const c_char) -> *mut FILE;
-    pub fn open_memstream(ptr: *mut *mut c_char, sizeloc: *mut size_t) -> *mut FILE;
-
-    pub fn fflush(file: *mut FILE) -> c_int;
-    pub fn fclose(file: *mut FILE) -> c_int;
-    pub fn remove(filename: *const c_char) -> c_int;
-    pub fn rename(oldname: *const c_char, newname: *const c_char) -> c_int;
-    pub fn tmpfile() -> *mut FILE;
-    pub fn setvbuf(stream: *mut FILE, buffer: *mut c_char, mode: c_int, size: size_t) -> c_int;
-    pub fn setbuf(stream: *mut FILE, buf: *mut c_char);
-    pub fn getchar() -> c_int;
-    pub fn putchar(c: c_int) -> c_int;
-    pub fn fgetc(stream: *mut FILE) -> c_int;
-    pub fn fgets(buf: *mut c_char, n: c_int, stream: *mut FILE) -> *mut c_char;
-    pub fn fputc(c: c_int, stream: *mut FILE) -> c_int;
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "fputs$UNIX2003"
-    )]
-    pub fn fputs(s: *const c_char, stream: *mut FILE) -> c_int;
-    pub fn puts(s: *const c_char) -> c_int;
-    pub fn ungetc(c: c_int, stream: *mut FILE) -> c_int;
-    pub fn fread(ptr: *mut c_void, size: size_t, nobj: size_t, stream: *mut FILE) -> size_t;
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "fwrite$UNIX2003"
-    )]
-    pub fn fwrite(ptr: *const c_void, size: size_t, nobj: size_t, stream: *mut FILE) -> size_t;
-    pub fn fseek(stream: *mut FILE, offset: c_long, whence: c_int) -> c_int;
-    pub fn ftell(stream: *mut FILE) -> c_long;
-    pub fn rewind(stream: *mut FILE);
-    #[cfg_attr(target_os = "netbsd", link_name = "__fgetpos50")]
-    pub fn fgetpos(stream: *mut FILE, ptr: *mut fpos_t) -> c_int;
-    #[cfg_attr(target_os = "netbsd", link_name = "__fsetpos50")]
-    pub fn fsetpos(stream: *mut FILE, ptr: *const fpos_t) -> c_int;
-    pub fn feof(stream: *mut FILE) -> c_int;
-    pub fn ferror(stream: *mut FILE) -> c_int;
-    pub fn clearerr(stream: *mut FILE);
-    pub fn perror(s: *const c_char);
-    pub fn atoi(s: *const c_char) -> c_int;
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "strtod$UNIX2003"
-    )]
-    pub fn strtod(s: *const c_char, endp: *mut *mut c_char) -> c_double;
-    pub fn strtof(s: *const c_char, endp: *mut *mut c_char) -> c_float;
-    pub fn strtol(s: *const c_char, endp: *mut *mut c_char, base: c_int) -> c_long;
-    pub fn strtoul(s: *const c_char, endp: *mut *mut c_char, base: c_int) -> c_ulong;
-    pub fn calloc(nobj: size_t, size: size_t) -> *mut c_void;
-    pub fn malloc(size: size_t) -> *mut c_void;
-    pub fn realloc(p: *mut c_void, size: size_t) -> *mut c_void;
-    pub fn free(p: *mut c_void);
-    pub fn abort() -> !;
-    pub fn exit(status: c_int) -> !;
-    pub fn _exit(status: c_int) -> !;
-    pub fn atexit(cb: extern "C" fn()) -> c_int;
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "system$UNIX2003"
-    )]
-    pub fn system(s: *const c_char) -> c_int;
-    pub fn getenv(s: *const c_char) -> *mut c_char;
-
-    pub fn strcpy(dst: *mut c_char, src: *const c_char) -> *mut c_char;
-    pub fn strncpy(dst: *mut c_char, src: *const c_char, n: size_t) -> *mut c_char;
-    pub fn stpcpy(dst: *mut c_char, src: *const c_char) -> *mut c_char;
-    pub fn strcat(s: *mut c_char, ct: *const c_char) -> *mut c_char;
-    pub fn strncat(s: *mut c_char, ct: *const c_char, n: size_t) -> *mut c_char;
-    pub fn strcmp(cs: *const c_char, ct: *const c_char) -> c_int;
-    pub fn strncmp(cs: *const c_char, ct: *const c_char, n: size_t) -> c_int;
-    pub fn strcoll(cs: *const c_char, ct: *const c_char) -> c_int;
-    pub fn strchr(cs: *const c_char, c: c_int) -> *mut c_char;
-    pub fn strrchr(cs: *const c_char, c: c_int) -> *mut c_char;
-    pub fn strspn(cs: *const c_char, ct: *const c_char) -> size_t;
-    pub fn strcspn(cs: *const c_char, ct: *const c_char) -> size_t;
-    pub fn strdup(cs: *const c_char) -> *mut c_char;
-    pub fn strndup(cs: *const c_char, n: size_t) -> *mut c_char;
-    pub fn strpbrk(cs: *const c_char, ct: *const c_char) -> *mut c_char;
-    pub fn strstr(cs: *const c_char, ct: *const c_char) -> *mut c_char;
-    pub fn strcasecmp(s1: *const c_char, s2: *const c_char) -> c_int;
-    pub fn strncasecmp(s1: *const c_char, s2: *const c_char, n: size_t) -> c_int;
-    pub fn strlen(cs: *const c_char) -> size_t;
-    pub fn strnlen(cs: *const c_char, maxlen: size_t) -> size_t;
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "strerror$UNIX2003"
-    )]
-    pub fn strerror(n: c_int) -> *mut c_char;
-    pub fn strtok(s: *mut c_char, t: *const c_char) -> *mut c_char;
-    pub fn strtok_r(s: *mut c_char, t: *const c_char, p: *mut *mut c_char) -> *mut c_char;
-    pub fn strxfrm(s: *mut c_char, ct: *const c_char, n: size_t) -> size_t;
-    pub fn strsignal(sig: c_int) -> *mut c_char;
-    pub fn wcslen(buf: *const wchar_t) -> size_t;
-    pub fn wcstombs(dest: *mut c_char, src: *const wchar_t, n: size_t) -> ::size_t;
-
-    pub fn memchr(cx: *const c_void, c: c_int, n: size_t) -> *mut c_void;
-    pub fn wmemchr(cx: *const wchar_t, c: wchar_t, n: size_t) -> *mut wchar_t;
-    pub fn memcmp(cx: *const c_void, ct: *const c_void, n: size_t) -> c_int;
-    pub fn memcpy(dest: *mut c_void, src: *const c_void, n: size_t) -> *mut c_void;
-    pub fn memmove(dest: *mut c_void, src: *const c_void, n: size_t) -> *mut c_void;
-    pub fn memset(dest: *mut c_void, c: c_int, n: size_t) -> *mut c_void;
-}
-
-extern "C" {
-    #[cfg_attr(target_os = "netbsd", link_name = "__getpwnam50")]
-    pub fn getpwnam(name: *const ::c_char) -> *mut passwd;
-    #[cfg_attr(target_os = "netbsd", link_name = "__getpwuid50")]
-    pub fn getpwuid(uid: ::uid_t) -> *mut passwd;
-
-    pub fn fprintf(stream: *mut ::FILE, format: *const ::c_char, ...) -> ::c_int;
-    pub fn printf(format: *const ::c_char, ...) -> ::c_int;
-    pub fn snprintf(s: *mut ::c_char, n: ::size_t, format: *const ::c_char, ...) -> ::c_int;
-    pub fn sprintf(s: *mut ::c_char, format: *const ::c_char, ...) -> ::c_int;
-    #[cfg_attr(
-        all(target_os = "linux", not(target_env = "uclibc")),
-        link_name = "__isoc99_fscanf"
-    )]
-    pub fn fscanf(stream: *mut ::FILE, format: *const ::c_char, ...) -> ::c_int;
-    #[cfg_attr(
-        all(target_os = "linux", not(target_env = "uclibc")),
-        link_name = "__isoc99_scanf"
-    )]
-    pub fn scanf(format: *const ::c_char, ...) -> ::c_int;
-    #[cfg_attr(
-        all(target_os = "linux", not(target_env = "uclibc")),
-        link_name = "__isoc99_sscanf"
-    )]
-    pub fn sscanf(s: *const ::c_char, format: *const ::c_char, ...) -> ::c_int;
-    pub fn getchar_unlocked() -> ::c_int;
-    pub fn putchar_unlocked(c: ::c_int) -> ::c_int;
-
-    #[cfg(not(all(
-        libc_cfg_target_vendor,
-        target_arch = "powerpc",
-        target_vendor = "nintendo"
-    )))]
-    #[cfg_attr(target_os = "netbsd", link_name = "__socket30")]
-    #[cfg_attr(target_os = "illumos", link_name = "__xnet_socket")]
-    #[cfg_attr(target_os = "espidf", link_name = "lwip_socket")]
-    pub fn socket(domain: ::c_int, ty: ::c_int, protocol: ::c_int) -> ::c_int;
-    #[cfg(not(all(
-        libc_cfg_target_vendor,
-        target_arch = "powerpc",
-        target_vendor = "nintendo"
-    )))]
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "connect$UNIX2003"
-    )]
-    #[cfg_attr(target_os = "illumos", link_name = "__xnet_connect")]
-    #[cfg_attr(target_os = "espidf", link_name = "lwip_connect")]
-    pub fn connect(socket: ::c_int, address: *const sockaddr, len: socklen_t) -> ::c_int;
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "listen$UNIX2003"
-    )]
-    #[cfg_attr(target_os = "espidf", link_name = "lwip_listen")]
-    pub fn listen(socket: ::c_int, backlog: ::c_int) -> ::c_int;
-    #[cfg(not(all(
-        libc_cfg_target_vendor,
-        target_arch = "powerpc",
-        target_vendor = "nintendo"
-    )))]
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "accept$UNIX2003"
-    )]
-    #[cfg_attr(target_os = "espidf", link_name = "lwip_accept")]
-    pub fn accept(socket: ::c_int, address: *mut sockaddr, address_len: *mut socklen_t) -> ::c_int;
-    #[cfg(not(all(
-        libc_cfg_target_vendor,
-        target_arch = "powerpc",
-        target_vendor = "nintendo"
-    )))]
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "getpeername$UNIX2003"
-    )]
-    #[cfg_attr(target_os = "espidf", link_name = "lwip_getpeername")]
-    pub fn getpeername(
-        socket: ::c_int,
-        address: *mut sockaddr,
-        address_len: *mut socklen_t,
-    ) -> ::c_int;
-    #[cfg(not(all(
-        libc_cfg_target_vendor,
-        target_arch = "powerpc",
-        target_vendor = "nintendo"
-    )))]
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "getsockname$UNIX2003"
-    )]
-    #[cfg_attr(target_os = "espidf", link_name = "lwip_getsockname")]
-    pub fn getsockname(
-        socket: ::c_int,
-        address: *mut sockaddr,
-        address_len: *mut socklen_t,
-    ) -> ::c_int;
-    #[cfg_attr(target_os = "espidf", link_name = "lwip_setsockopt")]
-    pub fn setsockopt(
-        socket: ::c_int,
-        level: ::c_int,
-        name: ::c_int,
-        value: *const ::c_void,
-        option_len: socklen_t,
-    ) -> ::c_int;
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "socketpair$UNIX2003"
-    )]
-    #[cfg_attr(target_os = "illumos", link_name = "__xnet_socketpair")]
-    pub fn socketpair(
-        domain: ::c_int,
-        type_: ::c_int,
-        protocol: ::c_int,
-        socket_vector: *mut ::c_int,
-    ) -> ::c_int;
-    #[cfg(not(all(
-        libc_cfg_target_vendor,
-        target_arch = "powerpc",
-        target_vendor = "nintendo"
-    )))]
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "sendto$UNIX2003"
-    )]
-    #[cfg_attr(target_os = "illumos", link_name = "__xnet_sendto")]
-    #[cfg_attr(target_os = "espidf", link_name = "lwip_sendto")]
-    pub fn sendto(
-        socket: ::c_int,
-        buf: *const ::c_void,
-        len: ::size_t,
-        flags: ::c_int,
-        addr: *const sockaddr,
-        addrlen: socklen_t,
-    ) -> ::ssize_t;
-    #[cfg_attr(target_os = "espidf", link_name = "lwip_shutdown")]
-    pub fn shutdown(socket: ::c_int, how: ::c_int) -> ::c_int;
-
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "chmod$UNIX2003"
-    )]
-    pub fn chmod(path: *const c_char, mode: mode_t) -> ::c_int;
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "fchmod$UNIX2003"
-    )]
-    pub fn fchmod(fd: ::c_int, mode: mode_t) -> ::c_int;
-
-    #[cfg_attr(
-        all(target_os = "macos", not(target_arch = "aarch64")),
-        link_name = "fstat$INODE64"
-    )]
-    #[cfg_attr(target_os = "netbsd", link_name = "__fstat50")]
-    #[cfg_attr(
-        all(target_os = "freebsd", any(freebsd11, freebsd10)),
-        link_name = "fstat@FBSD_1.0"
-    )]
-    pub fn fstat(fildes: ::c_int, buf: *mut stat) -> ::c_int;
-
-    pub fn mkdir(path: *const c_char, mode: mode_t) -> ::c_int;
-
-    #[cfg_attr(
-        all(target_os = "macos", not(target_arch = "aarch64")),
-        link_name = "stat$INODE64"
-    )]
-    #[cfg_attr(target_os = "netbsd", link_name = "__stat50")]
-    #[cfg_attr(
-        all(target_os = "freebsd", any(freebsd11, freebsd10)),
-        link_name = "stat@FBSD_1.0"
-    )]
-    pub fn stat(path: *const c_char, buf: *mut stat) -> ::c_int;
-
-    pub fn pclose(stream: *mut ::FILE) -> ::c_int;
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "fdopen$UNIX2003"
-    )]
-    pub fn fdopen(fd: ::c_int, mode: *const c_char) -> *mut ::FILE;
-    pub fn fileno(stream: *mut ::FILE) -> ::c_int;
-
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "open$UNIX2003"
-    )]
-    pub fn open(path: *const c_char, oflag: ::c_int, ...) -> ::c_int;
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "creat$UNIX2003"
-    )]
-    pub fn creat(path: *const c_char, mode: mode_t) -> ::c_int;
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "fcntl$UNIX2003"
-    )]
-    pub fn fcntl(fd: ::c_int, cmd: ::c_int, ...) -> ::c_int;
-
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86_64"),
-        link_name = "opendir$INODE64"
-    )]
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "opendir$INODE64$UNIX2003"
-    )]
-    #[cfg_attr(target_os = "netbsd", link_name = "__opendir30")]
-    pub fn opendir(dirname: *const c_char) -> *mut ::DIR;
-
-    #[cfg_attr(
-        all(target_os = "macos", not(target_arch = "aarch64")),
-        link_name = "readdir$INODE64"
-    )]
-    #[cfg_attr(target_os = "netbsd", link_name = "__readdir30")]
-    #[cfg_attr(
-        all(target_os = "freebsd", any(freebsd11, freebsd10)),
-        link_name = "readdir@FBSD_1.0"
-    )]
-    pub fn readdir(dirp: *mut ::DIR) -> *mut ::dirent;
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "closedir$UNIX2003"
-    )]
-    pub fn closedir(dirp: *mut ::DIR) -> ::c_int;
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86_64"),
-        link_name = "rewinddir$INODE64"
-    )]
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "rewinddir$INODE64$UNIX2003"
-    )]
-    pub fn rewinddir(dirp: *mut ::DIR);
-
-    pub fn fchmodat(
-        dirfd: ::c_int,
-        pathname: *const ::c_char,
-        mode: ::mode_t,
-        flags: ::c_int,
-    ) -> ::c_int;
-    pub fn fchown(fd: ::c_int, owner: ::uid_t, group: ::gid_t) -> ::c_int;
-    pub fn fchownat(
-        dirfd: ::c_int,
-        pathname: *const ::c_char,
-        owner: ::uid_t,
-        group: ::gid_t,
-        flags: ::c_int,
-    ) -> ::c_int;
-    #[cfg_attr(
-        all(target_os = "macos", not(target_arch = "aarch64")),
-        link_name = "fstatat$INODE64"
-    )]
-    #[cfg_attr(
-        all(target_os = "freebsd", any(freebsd11, freebsd10)),
-        link_name = "fstatat@FBSD_1.1"
-    )]
-    pub fn fstatat(
-        dirfd: ::c_int,
-        pathname: *const ::c_char,
-        buf: *mut stat,
-        flags: ::c_int,
-    ) -> ::c_int;
-    pub fn linkat(
-        olddirfd: ::c_int,
-        oldpath: *const ::c_char,
-        newdirfd: ::c_int,
-        newpath: *const ::c_char,
-        flags: ::c_int,
-    ) -> ::c_int;
-    pub fn renameat(
-        olddirfd: ::c_int,
-        oldpath: *const ::c_char,
-        newdirfd: ::c_int,
-        newpath: *const ::c_char,
-    ) -> ::c_int;
-    pub fn symlinkat(
-        target: *const ::c_char,
-        newdirfd: ::c_int,
-        linkpath: *const ::c_char,
-    ) -> ::c_int;
-    pub fn unlinkat(dirfd: ::c_int, pathname: *const ::c_char, flags: ::c_int) -> ::c_int;
-
-    pub fn access(path: *const c_char, amode: ::c_int) -> ::c_int;
-    pub fn alarm(seconds: ::c_uint) -> ::c_uint;
-    pub fn chdir(dir: *const c_char) -> ::c_int;
-    pub fn fchdir(dirfd: ::c_int) -> ::c_int;
-    pub fn chown(path: *const c_char, uid: uid_t, gid: gid_t) -> ::c_int;
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "lchown$UNIX2003"
-    )]
-    pub fn lchown(path: *const c_char, uid: uid_t, gid: gid_t) -> ::c_int;
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "close$NOCANCEL$UNIX2003"
-    )]
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86_64"),
-        link_name = "close$NOCANCEL"
-    )]
-    pub fn close(fd: ::c_int) -> ::c_int;
-    pub fn dup(fd: ::c_int) -> ::c_int;
-    pub fn dup2(src: ::c_int, dst: ::c_int) -> ::c_int;
-    pub fn execl(path: *const c_char, arg0: *const c_char, ...) -> ::c_int;
-    pub fn execle(path: *const ::c_char, arg0: *const ::c_char, ...) -> ::c_int;
-    pub fn execlp(file: *const ::c_char, arg0: *const ::c_char, ...) -> ::c_int;
-    pub fn execv(prog: *const c_char, argv: *const *const c_char) -> ::c_int;
-    pub fn execve(
-        prog: *const c_char,
-        argv: *const *const c_char,
-        envp: *const *const c_char,
-    ) -> ::c_int;
-    pub fn execvp(c: *const c_char, argv: *const *const c_char) -> ::c_int;
-    pub fn fork() -> pid_t;
-    pub fn fpathconf(filedes: ::c_int, name: ::c_int) -> c_long;
-    pub fn getcwd(buf: *mut c_char, size: ::size_t) -> *mut c_char;
-    pub fn getegid() -> gid_t;
-    pub fn geteuid() -> uid_t;
-    pub fn getgid() -> gid_t;
-    pub fn getgroups(ngroups_max: ::c_int, groups: *mut gid_t) -> ::c_int;
-    #[cfg_attr(target_os = "illumos", link_name = "getloginx")]
-    pub fn getlogin() -> *mut c_char;
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "getopt$UNIX2003"
-    )]
-    pub fn getopt(argc: ::c_int, argv: *const *mut c_char, optstr: *const c_char) -> ::c_int;
-    pub fn getpgid(pid: pid_t) -> pid_t;
-    pub fn getpgrp() -> pid_t;
-    pub fn getpid() -> pid_t;
-    pub fn getppid() -> pid_t;
-    pub fn getuid() -> uid_t;
-    pub fn isatty(fd: ::c_int) -> ::c_int;
-    pub fn link(src: *const c_char, dst: *const c_char) -> ::c_int;
-    pub fn lseek(fd: ::c_int, offset: off_t, whence: ::c_int) -> off_t;
-    pub fn pathconf(path: *const c_char, name: ::c_int) -> c_long;
-    pub fn pipe(fds: *mut ::c_int) -> ::c_int;
-    pub fn posix_memalign(memptr: *mut *mut ::c_void, align: ::size_t, size: ::size_t) -> ::c_int;
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "read$UNIX2003"
-    )]
-    pub fn read(fd: ::c_int, buf: *mut ::c_void, count: ::size_t) -> ::ssize_t;
-    pub fn rmdir(path: *const c_char) -> ::c_int;
-    pub fn seteuid(uid: uid_t) -> ::c_int;
-    pub fn setegid(gid: gid_t) -> ::c_int;
-    pub fn setgid(gid: gid_t) -> ::c_int;
-    pub fn setpgid(pid: pid_t, pgid: pid_t) -> ::c_int;
-    pub fn setsid() -> pid_t;
-    pub fn setuid(uid: uid_t) -> ::c_int;
-    pub fn setreuid(ruid: uid_t, euid: uid_t) -> ::c_int;
-    pub fn setregid(rgid: gid_t, egid: gid_t) -> ::c_int;
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "sleep$UNIX2003"
-    )]
-    pub fn sleep(secs: ::c_uint) -> ::c_uint;
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "nanosleep$UNIX2003"
-    )]
-    #[cfg_attr(target_os = "netbsd", link_name = "__nanosleep50")]
-    pub fn nanosleep(rqtp: *const timespec, rmtp: *mut timespec) -> ::c_int;
-    pub fn tcgetpgrp(fd: ::c_int) -> pid_t;
-    pub fn tcsetpgrp(fd: ::c_int, pgrp: ::pid_t) -> ::c_int;
-    pub fn ttyname(fd: ::c_int) -> *mut c_char;
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "ttyname_r$UNIX2003"
-    )]
-    #[cfg_attr(target_os = "illumos", link_name = "__posix_ttyname_r")]
-    pub fn ttyname_r(fd: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int;
-    pub fn unlink(c: *const c_char) -> ::c_int;
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "wait$UNIX2003"
-    )]
-    pub fn wait(status: *mut ::c_int) -> pid_t;
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "waitpid$UNIX2003"
-    )]
-    pub fn waitpid(pid: pid_t, status: *mut ::c_int, options: ::c_int) -> pid_t;
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "write$UNIX2003"
-    )]
-    pub fn write(fd: ::c_int, buf: *const ::c_void, count: ::size_t) -> ::ssize_t;
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "pread$UNIX2003"
-    )]
-    pub fn pread(fd: ::c_int, buf: *mut ::c_void, count: ::size_t, offset: off_t) -> ::ssize_t;
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "pwrite$UNIX2003"
-    )]
-    pub fn pwrite(fd: ::c_int, buf: *const ::c_void, count: ::size_t, offset: off_t) -> ::ssize_t;
-    pub fn umask(mask: mode_t) -> mode_t;
-
-    #[cfg_attr(target_os = "netbsd", link_name = "__utime50")]
-    pub fn utime(file: *const c_char, buf: *const utimbuf) -> ::c_int;
-
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "kill$UNIX2003"
-    )]
-    pub fn kill(pid: pid_t, sig: ::c_int) -> ::c_int;
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "killpg$UNIX2003"
-    )]
-    pub fn killpg(pgrp: pid_t, sig: ::c_int) -> ::c_int;
-
-    pub fn mlock(addr: *const ::c_void, len: ::size_t) -> ::c_int;
-    pub fn munlock(addr: *const ::c_void, len: ::size_t) -> ::c_int;
-    pub fn mlockall(flags: ::c_int) -> ::c_int;
-    pub fn munlockall() -> ::c_int;
-
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "mmap$UNIX2003"
-    )]
-    pub fn mmap(
-        addr: *mut ::c_void,
-        len: ::size_t,
-        prot: ::c_int,
-        flags: ::c_int,
-        fd: ::c_int,
-        offset: off_t,
-    ) -> *mut ::c_void;
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "munmap$UNIX2003"
-    )]
-    pub fn munmap(addr: *mut ::c_void, len: ::size_t) -> ::c_int;
-
-    pub fn if_nametoindex(ifname: *const c_char) -> ::c_uint;
-    pub fn if_indextoname(ifindex: ::c_uint, ifname: *mut ::c_char) -> *mut ::c_char;
-
-    #[cfg_attr(
-        all(target_os = "macos", not(target_arch = "aarch64")),
-        link_name = "lstat$INODE64"
-    )]
-    #[cfg_attr(target_os = "netbsd", link_name = "__lstat50")]
-    #[cfg_attr(
-        all(target_os = "freebsd", any(freebsd11, freebsd10)),
-        link_name = "lstat@FBSD_1.0"
-    )]
-    pub fn lstat(path: *const c_char, buf: *mut stat) -> ::c_int;
-
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "fsync$UNIX2003"
-    )]
-    pub fn fsync(fd: ::c_int) -> ::c_int;
-
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "setenv$UNIX2003"
-    )]
-    pub fn setenv(name: *const c_char, val: *const c_char, overwrite: ::c_int) -> ::c_int;
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "unsetenv$UNIX2003"
-    )]
-    #[cfg_attr(target_os = "netbsd", link_name = "__unsetenv13")]
-    pub fn unsetenv(name: *const c_char) -> ::c_int;
-
-    pub fn symlink(path1: *const c_char, path2: *const c_char) -> ::c_int;
-
-    pub fn ftruncate(fd: ::c_int, length: off_t) -> ::c_int;
-
-    pub fn signal(signum: ::c_int, handler: sighandler_t) -> sighandler_t;
-
-    #[cfg_attr(target_os = "netbsd", link_name = "__getrusage50")]
-    pub fn getrusage(resource: ::c_int, usage: *mut rusage) -> ::c_int;
-
-    #[cfg_attr(
-        any(
-            target_os = "macos",
-            target_os = "ios",
-            target_os = "tvos",
-            target_os = "watchos"
-        ),
-        link_name = "realpath$DARWIN_EXTSN"
-    )]
-    pub fn realpath(pathname: *const ::c_char, resolved: *mut ::c_char) -> *mut ::c_char;
-
-    pub fn flock(fd: ::c_int, operation: ::c_int) -> ::c_int;
-
-    #[cfg_attr(target_os = "netbsd", link_name = "__times13")]
-    pub fn times(buf: *mut ::tms) -> ::clock_t;
-
-    pub fn pthread_self() -> ::pthread_t;
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "pthread_join$UNIX2003"
-    )]
-    pub fn pthread_join(native: ::pthread_t, value: *mut *mut ::c_void) -> ::c_int;
-    pub fn pthread_exit(value: *mut ::c_void) -> !;
-    pub fn pthread_attr_init(attr: *mut ::pthread_attr_t) -> ::c_int;
-    pub fn pthread_attr_destroy(attr: *mut ::pthread_attr_t) -> ::c_int;
-    pub fn pthread_attr_setstacksize(attr: *mut ::pthread_attr_t, stack_size: ::size_t) -> ::c_int;
-    pub fn pthread_attr_setdetachstate(attr: *mut ::pthread_attr_t, state: ::c_int) -> ::c_int;
-    pub fn pthread_detach(thread: ::pthread_t) -> ::c_int;
-    #[cfg_attr(target_os = "netbsd", link_name = "__libc_thr_yield")]
-    pub fn sched_yield() -> ::c_int;
-    pub fn pthread_key_create(
-        key: *mut pthread_key_t,
-        dtor: ::Option<unsafe extern "C" fn(*mut ::c_void)>,
-    ) -> ::c_int;
-    pub fn pthread_key_delete(key: pthread_key_t) -> ::c_int;
-    pub fn pthread_getspecific(key: pthread_key_t) -> *mut ::c_void;
-    pub fn pthread_setspecific(key: pthread_key_t, value: *const ::c_void) -> ::c_int;
-    pub fn pthread_mutex_init(
-        lock: *mut pthread_mutex_t,
-        attr: *const pthread_mutexattr_t,
-    ) -> ::c_int;
-    pub fn pthread_mutex_destroy(lock: *mut pthread_mutex_t) -> ::c_int;
-    pub fn pthread_mutex_lock(lock: *mut pthread_mutex_t) -> ::c_int;
-    pub fn pthread_mutex_trylock(lock: *mut pthread_mutex_t) -> ::c_int;
-    pub fn pthread_mutex_unlock(lock: *mut pthread_mutex_t) -> ::c_int;
-
-    pub fn pthread_mutexattr_init(attr: *mut pthread_mutexattr_t) -> ::c_int;
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "pthread_mutexattr_destroy$UNIX2003"
-    )]
-    pub fn pthread_mutexattr_destroy(attr: *mut pthread_mutexattr_t) -> ::c_int;
-    pub fn pthread_mutexattr_settype(attr: *mut pthread_mutexattr_t, _type: ::c_int) -> ::c_int;
-
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "pthread_cond_init$UNIX2003"
-    )]
-    pub fn pthread_cond_init(cond: *mut pthread_cond_t, attr: *const pthread_condattr_t)
-        -> ::c_int;
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "pthread_cond_wait$UNIX2003"
-    )]
-    pub fn pthread_cond_wait(cond: *mut pthread_cond_t, lock: *mut pthread_mutex_t) -> ::c_int;
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "pthread_cond_timedwait$UNIX2003"
-    )]
-    pub fn pthread_cond_timedwait(
-        cond: *mut pthread_cond_t,
-        lock: *mut pthread_mutex_t,
-        abstime: *const ::timespec,
-    ) -> ::c_int;
-    pub fn pthread_cond_signal(cond: *mut pthread_cond_t) -> ::c_int;
-    pub fn pthread_cond_broadcast(cond: *mut pthread_cond_t) -> ::c_int;
-    pub fn pthread_cond_destroy(cond: *mut pthread_cond_t) -> ::c_int;
-    pub fn pthread_condattr_init(attr: *mut pthread_condattr_t) -> ::c_int;
-    pub fn pthread_condattr_destroy(attr: *mut pthread_condattr_t) -> ::c_int;
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "pthread_rwlock_init$UNIX2003"
-    )]
-    pub fn pthread_rwlock_init(
-        lock: *mut pthread_rwlock_t,
-        attr: *const pthread_rwlockattr_t,
-    ) -> ::c_int;
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "pthread_rwlock_destroy$UNIX2003"
-    )]
-    pub fn pthread_rwlock_destroy(lock: *mut pthread_rwlock_t) -> ::c_int;
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "pthread_rwlock_rdlock$UNIX2003"
-    )]
-    pub fn pthread_rwlock_rdlock(lock: *mut pthread_rwlock_t) -> ::c_int;
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "pthread_rwlock_tryrdlock$UNIX2003"
-    )]
-    pub fn pthread_rwlock_tryrdlock(lock: *mut pthread_rwlock_t) -> ::c_int;
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "pthread_rwlock_wrlock$UNIX2003"
-    )]
-    pub fn pthread_rwlock_wrlock(lock: *mut pthread_rwlock_t) -> ::c_int;
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "pthread_rwlock_trywrlock$UNIX2003"
-    )]
-    pub fn pthread_rwlock_trywrlock(lock: *mut pthread_rwlock_t) -> ::c_int;
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "pthread_rwlock_unlock$UNIX2003"
-    )]
-    pub fn pthread_rwlock_unlock(lock: *mut pthread_rwlock_t) -> ::c_int;
-    pub fn pthread_rwlockattr_init(attr: *mut pthread_rwlockattr_t) -> ::c_int;
-    pub fn pthread_rwlockattr_destroy(attr: *mut pthread_rwlockattr_t) -> ::c_int;
-
-    #[cfg_attr(target_os = "illumos", link_name = "__xnet_getsockopt")]
-    #[cfg_attr(target_os = "espidf", link_name = "lwip_getsockopt")]
-    pub fn getsockopt(
-        sockfd: ::c_int,
-        level: ::c_int,
-        optname: ::c_int,
-        optval: *mut ::c_void,
-        optlen: *mut ::socklen_t,
-    ) -> ::c_int;
-    pub fn raise(signum: ::c_int) -> ::c_int;
-    #[cfg_attr(target_os = "netbsd", link_name = "__sigaction14")]
-    pub fn sigaction(signum: ::c_int, act: *const sigaction, oldact: *mut sigaction) -> ::c_int;
-
-    #[cfg_attr(target_os = "netbsd", link_name = "__utimes50")]
-    pub fn utimes(filename: *const ::c_char, times: *const ::timeval) -> ::c_int;
-    pub fn dlopen(filename: *const ::c_char, flag: ::c_int) -> *mut ::c_void;
-    pub fn dlerror() -> *mut ::c_char;
-    pub fn dlsym(handle: *mut ::c_void, symbol: *const ::c_char) -> *mut ::c_void;
-    pub fn dlclose(handle: *mut ::c_void) -> ::c_int;
-    pub fn dladdr(addr: *const ::c_void, info: *mut Dl_info) -> ::c_int;
-
-    #[cfg(not(all(
-        libc_cfg_target_vendor,
-        target_arch = "powerpc",
-        target_vendor = "nintendo"
-    )))]
-    #[cfg_attr(target_os = "illumos", link_name = "__xnet_getaddrinfo")]
-    #[cfg_attr(target_os = "espidf", link_name = "lwip_getaddrinfo")]
-    pub fn getaddrinfo(
-        node: *const c_char,
-        service: *const c_char,
-        hints: *const addrinfo,
-        res: *mut *mut addrinfo,
-    ) -> ::c_int;
-    #[cfg(not(all(
-        libc_cfg_target_vendor,
-        target_arch = "powerpc",
-        target_vendor = "nintendo"
-    )))]
-    #[cfg_attr(target_os = "espidf", link_name = "lwip_freeaddrinfo")]
-    pub fn freeaddrinfo(res: *mut addrinfo);
-    pub fn hstrerror(errcode: ::c_int) -> *const ::c_char;
-    pub fn gai_strerror(errcode: ::c_int) -> *const ::c_char;
-    #[cfg_attr(
-        any(
-            all(target_os = "linux", not(target_env = "musl")),
-            target_os = "freebsd",
-            target_os = "dragonfly",
-            target_os = "haiku"
-        ),
-        link_name = "__res_init"
-    )]
-    #[cfg_attr(
-        any(
-            target_os = "macos",
-            target_os = "ios",
-            target_os = "tvos",
-            target_os = "watchos"
-        ),
-        link_name = "res_9_init"
-    )]
-    pub fn res_init() -> ::c_int;
-
-    #[cfg_attr(target_os = "netbsd", link_name = "__gmtime_r50")]
-    #[cfg_attr(target_env = "musl", allow(deprecated))]
-    // FIXME: for `time_t`
-    pub fn gmtime_r(time_p: *const time_t, result: *mut tm) -> *mut tm;
-    #[cfg_attr(target_os = "netbsd", link_name = "__localtime_r50")]
-    #[cfg_attr(target_env = "musl", allow(deprecated))]
-    // FIXME: for `time_t`
-    pub fn localtime_r(time_p: *const time_t, result: *mut tm) -> *mut tm;
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "mktime$UNIX2003"
-    )]
-    #[cfg_attr(target_os = "netbsd", link_name = "__mktime50")]
-    #[cfg_attr(target_env = "musl", allow(deprecated))]
-    // FIXME: for `time_t`
-    pub fn mktime(tm: *mut tm) -> time_t;
-    #[cfg_attr(target_os = "netbsd", link_name = "__time50")]
-    #[cfg_attr(target_env = "musl", allow(deprecated))]
-    // FIXME: for `time_t`
-    pub fn time(time: *mut time_t) -> time_t;
-    #[cfg_attr(target_os = "netbsd", link_name = "__gmtime50")]
-    #[cfg_attr(target_env = "musl", allow(deprecated))]
-    // FIXME: for `time_t`
-    pub fn gmtime(time_p: *const time_t) -> *mut tm;
-    #[cfg_attr(target_os = "netbsd", link_name = "__locatime50")]
-    #[cfg_attr(target_env = "musl", allow(deprecated))]
-    // FIXME: for `time_t`
-    pub fn localtime(time_p: *const time_t) -> *mut tm;
-    #[cfg_attr(target_os = "netbsd", link_name = "__difftime50")]
-    #[cfg_attr(target_env = "musl", allow(deprecated))]
-    // FIXME: for `time_t`
-    pub fn difftime(time1: time_t, time0: time_t) -> ::c_double;
-    #[cfg_attr(target_os = "netbsd", link_name = "__timegm50")]
-    #[cfg_attr(target_env = "musl", allow(deprecated))]
-    // FIXME: for `time_t`
-    pub fn timegm(tm: *mut ::tm) -> time_t;
-
-    #[cfg_attr(target_os = "netbsd", link_name = "__mknod50")]
-    #[cfg_attr(
-        all(target_os = "freebsd", any(freebsd11, freebsd10)),
-        link_name = "mknod@FBSD_1.0"
-    )]
-    pub fn mknod(pathname: *const ::c_char, mode: ::mode_t, dev: ::dev_t) -> ::c_int;
-    pub fn gethostname(name: *mut ::c_char, len: ::size_t) -> ::c_int;
-    pub fn endservent();
-    pub fn getservbyname(name: *const ::c_char, proto: *const ::c_char) -> *mut servent;
-    pub fn getservbyport(port: ::c_int, proto: *const ::c_char) -> *mut servent;
-    pub fn getservent() -> *mut servent;
-    pub fn setservent(stayopen: ::c_int);
-    pub fn getprotobyname(name: *const ::c_char) -> *mut protoent;
-    pub fn getprotobynumber(proto: ::c_int) -> *mut protoent;
-    pub fn chroot(name: *const ::c_char) -> ::c_int;
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "usleep$UNIX2003"
-    )]
-    pub fn usleep(secs: ::c_uint) -> ::c_int;
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "send$UNIX2003"
-    )]
-    #[cfg_attr(target_os = "espidf", link_name = "lwip_send")]
-    pub fn send(socket: ::c_int, buf: *const ::c_void, len: ::size_t, flags: ::c_int) -> ::ssize_t;
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "recv$UNIX2003"
-    )]
-    #[cfg_attr(target_os = "espidf", link_name = "lwip_recv")]
-    pub fn recv(socket: ::c_int, buf: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::ssize_t;
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "putenv$UNIX2003"
-    )]
-    #[cfg_attr(target_os = "netbsd", link_name = "__putenv50")]
-    pub fn putenv(string: *mut c_char) -> ::c_int;
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "poll$UNIX2003"
-    )]
-    pub fn poll(fds: *mut pollfd, nfds: nfds_t, timeout: ::c_int) -> ::c_int;
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86_64"),
-        link_name = "select$1050"
-    )]
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "select$UNIX2003"
-    )]
-    #[cfg_attr(target_os = "netbsd", link_name = "__select50")]
-    pub fn select(
-        nfds: ::c_int,
-        readfds: *mut fd_set,
-        writefds: *mut fd_set,
-        errorfds: *mut fd_set,
-        timeout: *mut timeval,
-    ) -> ::c_int;
-    #[cfg_attr(target_os = "netbsd", link_name = "__setlocale50")]
-    pub fn setlocale(category: ::c_int, locale: *const ::c_char) -> *mut ::c_char;
-    pub fn localeconv() -> *mut lconv;
-
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "sem_wait$UNIX2003"
-    )]
-    pub fn sem_wait(sem: *mut sem_t) -> ::c_int;
-    pub fn sem_trywait(sem: *mut sem_t) -> ::c_int;
-    pub fn sem_post(sem: *mut sem_t) -> ::c_int;
-    pub fn statvfs(path: *const c_char, buf: *mut statvfs) -> ::c_int;
-    pub fn fstatvfs(fd: ::c_int, buf: *mut statvfs) -> ::c_int;
-
-    pub fn readlink(path: *const c_char, buf: *mut c_char, bufsz: ::size_t) -> ::ssize_t;
-
-    #[cfg_attr(target_os = "netbsd", link_name = "__sigemptyset14")]
-    pub fn sigemptyset(set: *mut sigset_t) -> ::c_int;
-    #[cfg_attr(target_os = "netbsd", link_name = "__sigaddset14")]
-    pub fn sigaddset(set: *mut sigset_t, signum: ::c_int) -> ::c_int;
-    #[cfg_attr(target_os = "netbsd", link_name = "__sigfillset14")]
-    pub fn sigfillset(set: *mut sigset_t) -> ::c_int;
-    #[cfg_attr(target_os = "netbsd", link_name = "__sigdelset14")]
-    pub fn sigdelset(set: *mut sigset_t, signum: ::c_int) -> ::c_int;
-    #[cfg_attr(target_os = "netbsd", link_name = "__sigismember14")]
-    pub fn sigismember(set: *const sigset_t, signum: ::c_int) -> ::c_int;
-
-    #[cfg_attr(target_os = "netbsd", link_name = "__sigprocmask14")]
-    pub fn sigprocmask(how: ::c_int, set: *const sigset_t, oldset: *mut sigset_t) -> ::c_int;
-    #[cfg_attr(target_os = "netbsd", link_name = "__sigpending14")]
-    pub fn sigpending(set: *mut sigset_t) -> ::c_int;
-
-    pub fn sysconf(name: ::c_int) -> ::c_long;
-
-    pub fn mkfifo(path: *const c_char, mode: mode_t) -> ::c_int;
-
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86_64"),
-        link_name = "pselect$1050"
-    )]
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "pselect$UNIX2003"
-    )]
-    #[cfg_attr(target_os = "netbsd", link_name = "__pselect50")]
-    pub fn pselect(
-        nfds: ::c_int,
-        readfds: *mut fd_set,
-        writefds: *mut fd_set,
-        errorfds: *mut fd_set,
-        timeout: *const timespec,
-        sigmask: *const sigset_t,
-    ) -> ::c_int;
-    pub fn fseeko(stream: *mut ::FILE, offset: ::off_t, whence: ::c_int) -> ::c_int;
-    pub fn ftello(stream: *mut ::FILE) -> ::off_t;
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "tcdrain$UNIX2003"
-    )]
-    pub fn tcdrain(fd: ::c_int) -> ::c_int;
-    pub fn cfgetispeed(termios: *const ::termios) -> ::speed_t;
-    pub fn cfgetospeed(termios: *const ::termios) -> ::speed_t;
-    pub fn cfsetispeed(termios: *mut ::termios, speed: ::speed_t) -> ::c_int;
-    pub fn cfsetospeed(termios: *mut ::termios, speed: ::speed_t) -> ::c_int;
-    pub fn tcgetattr(fd: ::c_int, termios: *mut ::termios) -> ::c_int;
-    pub fn tcsetattr(fd: ::c_int, optional_actions: ::c_int, termios: *const ::termios) -> ::c_int;
-    pub fn tcflow(fd: ::c_int, action: ::c_int) -> ::c_int;
-    pub fn tcflush(fd: ::c_int, action: ::c_int) -> ::c_int;
-    pub fn tcgetsid(fd: ::c_int) -> ::pid_t;
-    pub fn tcsendbreak(fd: ::c_int, duration: ::c_int) -> ::c_int;
-    pub fn mkstemp(template: *mut ::c_char) -> ::c_int;
-    pub fn mkdtemp(template: *mut ::c_char) -> *mut ::c_char;
-
-    pub fn tmpnam(ptr: *mut ::c_char) -> *mut ::c_char;
-
-    pub fn openlog(ident: *const ::c_char, logopt: ::c_int, facility: ::c_int);
-    pub fn closelog();
-    pub fn setlogmask(maskpri: ::c_int) -> ::c_int;
-    #[cfg_attr(target_os = "macos", link_name = "syslog$DARWIN_EXTSN")]
-    pub fn syslog(priority: ::c_int, message: *const ::c_char, ...);
-    #[cfg_attr(
-        all(target_os = "macos", target_arch = "x86"),
-        link_name = "nice$UNIX2003"
-    )]
-    pub fn nice(incr: ::c_int) -> ::c_int;
-
-    pub fn grantpt(fd: ::c_int) -> ::c_int;
-    pub fn posix_openpt(flags: ::c_int) -> ::c_int;
-    pub fn ptsname(fd: ::c_int) -> *mut ::c_char;
-    pub fn unlockpt(fd: ::c_int) -> ::c_int;
-
-    pub fn strcasestr(cs: *const c_char, ct: *const c_char) -> *mut c_char;
-    pub fn getline(lineptr: *mut *mut c_char, n: *mut size_t, stream: *mut FILE) -> ssize_t;
-
-    pub fn lockf(fd: ::c_int, cmd: ::c_int, len: ::off_t) -> ::c_int;
-
-}
-cfg_if! {
-    if #[cfg(not(any(target_os = "emscripten",
-                     target_os = "android",
-                     target_os = "haiku")))] {
-        extern "C" {
-            pub fn adjtime(delta: *const timeval, olddelta: *mut timeval) -> ::c_int;
-            pub fn stpncpy(dst: *mut c_char, src: *const c_char, n: size_t) -> *mut c_char;
-        }
-    }
-}
-
-cfg_if! {
-    if #[cfg(not(target_env = "uclibc"))] {
-        extern "C" {
-            pub fn open_wmemstream(
-                ptr: *mut *mut wchar_t,
-                sizeloc: *mut size_t,
-            ) -> *mut FILE;
-        }
-    }
-}
-
-cfg_if! {
-    if #[cfg(not(target_os = "redox"))] {
-        extern {
-            pub fn getsid(pid: pid_t) -> pid_t;
-            pub fn truncate(path: *const c_char, length: off_t) -> ::c_int;
-            #[cfg_attr(all(target_os = "macos", target_arch = "x86"),
-                       link_name = "pause$UNIX2003")]
-            pub fn pause() -> ::c_int;
-
-            pub fn readlinkat(dirfd: ::c_int,
-                              pathname: *const ::c_char,
-                              buf: *mut ::c_char,
-                              bufsiz: ::size_t) -> ::ssize_t;
-            pub fn mkdirat(dirfd: ::c_int, pathname: *const ::c_char,
-                           mode: ::mode_t) -> ::c_int;
-            pub fn openat(dirfd: ::c_int, pathname: *const ::c_char,
-                          flags: ::c_int, ...) -> ::c_int;
-
-            #[cfg_attr(all(target_os = "macos", target_arch = "x86_64"),
-                       link_name = "fdopendir$INODE64")]
-            #[cfg_attr(all(target_os = "macos", target_arch = "x86"),
-                       link_name = "fdopendir$INODE64$UNIX2003")]
-            pub fn fdopendir(fd: ::c_int) -> *mut ::DIR;
-
-            #[cfg_attr(all(target_os = "macos", not(target_arch = "aarch64")),
-                       link_name = "readdir_r$INODE64")]
-            #[cfg_attr(target_os = "netbsd", link_name = "__readdir_r30")]
-            #[cfg_attr(
-                all(target_os = "freebsd", any(freebsd11, freebsd10)),
-                link_name = "readdir_r@FBSD_1.0"
-            )]
-            #[allow(non_autolinks)] // FIXME: `<>` breaks line length limit.
-            /// The 64-bit libc on Solaris and illumos only has readdir_r. If a
-            /// 32-bit Solaris or illumos target is ever created, it should use
-            /// __posix_readdir_r. See libc(3LIB) on Solaris or illumos:
-            /// https://illumos.org/man/3lib/libc
-            /// https://docs.oracle.com/cd/E36784_01/html/E36873/libc-3lib.html
-            /// https://www.unix.com/man-page/opensolaris/3LIB/libc/
-            pub fn readdir_r(dirp: *mut ::DIR, entry: *mut ::dirent,
-                             result: *mut *mut ::dirent) -> ::c_int;
-        }
-    }
-}
-
-cfg_if! {
-   if #[cfg(not(any(target_os = "solaris", target_os = "illumos")))] {
-        extern {
-            pub fn cfmakeraw(termios: *mut ::termios);
-            pub fn cfsetspeed(termios: *mut ::termios,
-                              speed: ::speed_t) -> ::c_int;
-        }
-   }
-}
-
-cfg_if! {
-    if #[cfg(target_env = "newlib")] {
-        mod newlib;
-        pub use self::newlib::*;
-    } else if #[cfg(any(target_os = "linux",
-                        target_os = "l4re",
-                        target_os = "android",
-                        target_os = "emscripten"))] {
-        mod linux_like;
-        pub use self::linux_like::*;
-    } else if #[cfg(any(target_os = "macos",
-                        target_os = "ios",
-                        target_os = "tvos",
-                        target_os = "watchos",
-                        target_os = "freebsd",
-                        target_os = "dragonfly",
-                        target_os = "openbsd",
-                        target_os = "netbsd"))] {
-        mod bsd;
-        pub use self::bsd::*;
-    } else if #[cfg(any(target_os = "solaris",
-                        target_os = "illumos"))] {
-        mod solarish;
-        pub use self::solarish::*;
-    } else if #[cfg(target_os = "haiku")] {
-        mod haiku;
-        pub use self::haiku::*;
-    } else if #[cfg(target_os = "hermit")] {
-        mod hermit;
-        pub use self::hermit::*;
-    } else if #[cfg(target_os = "redox")] {
-        mod redox;
-        pub use self::redox::*;
-    } else {
-        // Unknown target_os
-    }
-}
-
-cfg_if! {
-    if #[cfg(libc_core_cvoid)] {
-        pub use ::ffi::c_void;
-    } else {
-        // Use repr(u8) as LLVM expects `void*` to be the same as `i8*` to help
-        // enable more optimization opportunities around it recognizing things
-        // like malloc/free.
-        #[repr(u8)]
-        #[allow(missing_copy_implementations)]
-        #[allow(missing_debug_implementations)]
-        pub enum c_void {
-            // Two dummy variants so the #[repr] attribute can be used.
-            #[doc(hidden)]
-            __variant1,
-            #[doc(hidden)]
-            __variant2,
-        }
-    }
-}
-
-cfg_if! {
-    if #[cfg(libc_align)] {
-        mod align;
-        pub use self::align::*;
-    } else {
-        mod no_align;
-        pub use self::no_align::*;
-    }
-}
-
-
\ No newline at end of file -- cgit v1.2.3-70-g09d2