summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2026-01-17 10:10:34 +0000
committerCoprDistGit <infra@openeuler.org>2026-01-17 10:10:34 +0000
commitaea033b9b8c3fd6ab2b362c9ffb87c85a0fb2625 (patch)
tree6845b2f250d4cb9f61ffc206cf8c7b2f0d6c1649
parent6333e633b06f17390138604211a6031cf74c63ed (diff)
automatic import of rustopeneuler24.03_LTS_SP1
-rw-r--r--0001-Fix-enabling-wasm-component-ld-to-match-other-tools.patch147
-rw-r--r--0001-Use-lld-provided-by-system.patch32
-rw-r--r--0001-add-support-for-ppc64le.patch79
-rwxr-xr-x0001-add-support-for-sw64.patch22477
-rw-r--r--0001-compiler-rt-Support-HARDCODE_NO_LSE-to-disable-lse-a.patch113
-rw-r--r--0001-fix-build-error-for-loongarch64.patch11
-rw-r--r--cargo_vendor.attr2
-rw-r--r--cargo_vendor.prov127
-rw-r--r--rust-1.82.0-aarch64-unknown-linux-gnu.tar.xz3
-rw-r--r--rust-1.82.0-loongarch64-unknown-linux-gnu.tar.xz3
-rw-r--r--rust-1.82.0-riscv64gc-unknown-linux-gnu.tar.xz3
-rw-r--r--rust-1.82.0-x86_64-unknown-linux-gnu.tar.xz3
-rw-r--r--rust-1.92.0-aarch64-unknown-linux-gnu.tar.xz3
-rw-r--r--rust-1.92.0-loongarch64-unknown-linux-gnu.tar.xz3
-rw-r--r--rust-1.92.0-riscv64gc-unknown-linux-gnu.tar.xz3
-rw-r--r--rust-1.92.0-x86_64-unknown-linux-gnu.tar.xz3
-rw-r--r--rust.spec146
-rw-r--r--rustc-1.82.0-disable-libssh2.patch44
-rw-r--r--rustc-1.82.0-src.tar.xz3
-rw-r--r--rustc-1.82.0-src.tar.xz.asc16
-rw-r--r--rustc-1.90.0-disable-libssh2.patch44
-rw-r--r--rustc-1.92.0-src.tar.xz3
-rw-r--r--rustc-1.92.0-src.tar.xz.asc16
23 files changed, 22933 insertions, 351 deletions
diff --git a/0001-Fix-enabling-wasm-component-ld-to-match-other-tools.patch b/0001-Fix-enabling-wasm-component-ld-to-match-other-tools.patch
new file mode 100644
index 0000000..5364012
--- /dev/null
+++ b/0001-Fix-enabling-wasm-component-ld-to-match-other-tools.patch
@@ -0,0 +1,147 @@
+From c15469a7fec811d1a4f69ff26e18c6f383df41d2 Mon Sep 17 00:00:00 2001
+From: Alex Crichton <alex@alexcrichton.com>
+Date: Fri, 6 Sep 2024 09:21:33 -0700
+Subject: [PATCH] Fix enabling wasm-component-ld to match other tools
+
+It was [pointed out recently][comment] that enabling `wasm-component-ld`
+as a host tool is different from other host tools. This commit refactors
+the logic to match by deduplicating selection of when to build other
+tools and then using the same logic for `wasm-component-ld`.
+
+[comment]: https://github.com/rust-lang/rust/pull/127866#issuecomment-2333434720
+---
+ src/bootstrap/src/core/build_steps/compile.rs | 2 +-
+ src/bootstrap/src/core/build_steps/dist.rs | 2 +-
+ src/bootstrap/src/core/build_steps/tool.rs | 38 +++----------------
+ src/bootstrap/src/lib.rs | 17 +++++----
+ 4 files changed, 17 insertions(+), 42 deletions(-)
+
+diff --git a/src/bootstrap/src/core/build_steps/compile.rs b/src/bootstrap/src/core/build_steps/compile.rs
+index 1936c91ef83c..102c9fd25543 100644
+--- a/src/bootstrap/src/core/build_steps/compile.rs
++++ b/src/bootstrap/src/core/build_steps/compile.rs
+@@ -1912,7 +1912,7 @@ fn run(self, builder: &Builder<'_>) -> Compiler {
+ // delegates to the `rust-lld` binary for linking and then runs
+ // logic to create the final binary. This is used by the
+ // `wasm32-wasip2` target of Rust.
+- if builder.build_wasm_component_ld() {
++ if builder.tool_enabled("wasm-component-ld") {
+ let wasm_component_ld_exe =
+ builder.ensure(crate::core::build_steps::tool::WasmComponentLd {
+ compiler: build_compiler,
+diff --git a/src/bootstrap/src/core/build_steps/dist.rs b/src/bootstrap/src/core/build_steps/dist.rs
+index 4957de2e1b79..ccb5656d6716 100644
+--- a/src/bootstrap/src/core/build_steps/dist.rs
++++ b/src/bootstrap/src/core/build_steps/dist.rs
+@@ -473,7 +473,7 @@ fn prepare_image(builder: &Builder<'_>, compiler: Compiler, image: &Path) {
+ );
+ }
+ }
+- if builder.build_wasm_component_ld() {
++ if builder.tool_enabled("wasm-component-ld") {
+ let src_dir = builder.sysroot_libdir(compiler, host).parent().unwrap().join("bin");
+ let ld = exe("wasm-component-ld", compiler.host);
+ builder.copy_link(&src_dir.join(&ld), &dst_dir.join(&ld));
+diff --git a/src/bootstrap/src/core/build_steps/tool.rs b/src/bootstrap/src/core/build_steps/tool.rs
+index 3a1eb43b801f..3c2d791c2090 100644
+--- a/src/bootstrap/src/core/build_steps/tool.rs
++++ b/src/bootstrap/src/core/build_steps/tool.rs
+@@ -693,14 +693,7 @@ impl Step for Cargo {
+
+ fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> {
+ let builder = run.builder;
+- run.path("src/tools/cargo").default_condition(
+- builder.config.extended
+- && builder.config.tools.as_ref().map_or(
+- true,
+- // If `tools` is set, search list for this tool.
+- |tools| tools.iter().any(|tool| tool == "cargo"),
+- ),
+- )
++ run.path("src/tools/cargo").default_condition(builder.tool_enabled("cargo"))
+ }
+
+ fn make_run(run: RunConfig<'_>) {
+@@ -772,14 +765,7 @@ impl Step for RustAnalyzer {
+
+ fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> {
+ let builder = run.builder;
+- run.path("src/tools/rust-analyzer").default_condition(
+- builder.config.extended
+- && builder
+- .config
+- .tools
+- .as_ref()
+- .map_or(true, |tools| tools.iter().any(|tool| tool == "rust-analyzer")),
+- )
++ run.path("src/tools/rust-analyzer").default_condition(builder.tool_enabled("rust-analyzer"))
+ }
+
+ fn make_run(run: RunConfig<'_>) {
+@@ -821,12 +807,8 @@ fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> {
+ run.path("src/tools/rust-analyzer")
+ .path("src/tools/rust-analyzer/crates/proc-macro-srv-cli")
+ .default_condition(
+- builder.config.extended
+- && builder.config.tools.as_ref().map_or(true, |tools| {
+- tools.iter().any(|tool| {
+- tool == "rust-analyzer" || tool == "rust-analyzer-proc-macro-srv"
+- })
+- }),
++ builder.tool_enabled("rust-analyzer")
++ || builder.tool_enabled("rust-analyzer-proc-macro-srv"),
+ )
+ }
+
+@@ -874,16 +856,8 @@ impl Step for LlvmBitcodeLinker {
+
+ fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> {
+ let builder = run.builder;
+- run.path("src/tools/llvm-bitcode-linker").default_condition(
+- builder.config.extended
+- && builder
+- .config
+- .tools
+- .as_ref()
+- .map_or(builder.build.unstable_features(), |tools| {
+- tools.iter().any(|tool| tool == "llvm-bitcode-linker")
+- }),
+- )
++ run.path("src/tools/llvm-bitcode-linker")
++ .default_condition(builder.tool_enabled("llvm-bitcode-linker"))
+ }
+
+ fn make_run(run: RunConfig<'_>) {
+diff --git a/src/bootstrap/src/lib.rs b/src/bootstrap/src/lib.rs
+index c76ce3409562..780024e307ed 100644
+--- a/src/bootstrap/src/lib.rs
++++ b/src/bootstrap/src/lib.rs
+@@ -1407,16 +1407,17 @@ fn default_wasi_runner(&self) -> Option<String> {
+ None
+ }
+
+- /// Returns whether it's requested that `wasm-component-ld` is built as part
+- /// of the sysroot. This is done either with the `extended` key in
+- /// `config.toml` or with the `tools` set.
+- fn build_wasm_component_ld(&self) -> bool {
+- if self.config.extended {
+- return true;
++ /// Returns whether the specified tool is configured as part of this build.
++ ///
++ /// This requires that both the `extended` key is set and the `tools` key is
++ /// either unset or specifically contains the specified tool.
++ fn tool_enabled(&self, tool: &str) -> bool {
++ if !self.config.extended {
++ return false;
+ }
+ match &self.config.tools {
+- Some(set) => set.contains("wasm-component-ld"),
+- None => false,
++ Some(set) => set.contains(tool),
++ None => true,
+ }
+ }
+
+--
+2.46.0
+
diff --git a/0001-Use-lld-provided-by-system.patch b/0001-Use-lld-provided-by-system.patch
index 1f077f7..063d66a 100644
--- a/0001-Use-lld-provided-by-system.patch
+++ b/0001-Use-lld-provided-by-system.patch
@@ -1,4 +1,4 @@
-From 0641fdd833785914f1ead6e1ab374beea5b55437 Mon Sep 17 00:00:00 2001
+From 3d8c6d095581e8d7585f3772cfd16f6367f3c008 Mon Sep 17 00:00:00 2001
From: Josh Stone <jistone@redhat.com>
Date: Fri, 16 Aug 2024 10:12:58 -0700
Subject: [PATCH] Use lld provided by system
@@ -12,12 +12,12 @@ Subject: [PATCH] Use lld provided by system
5 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/compiler/rustc_target/src/spec/base/wasm.rs b/compiler/rustc_target/src/spec/base/wasm.rs
-index 88e7af5e669..14100a683f9 100644
+index f237391016e7..08bcd9699b4a 100644
--- a/compiler/rustc_target/src/spec/base/wasm.rs
+++ b/compiler/rustc_target/src/spec/base/wasm.rs
-@@ -86,8 +86,7 @@ macro_rules! args {
- // threaded model which will legalize atomics to normal operations.
- singlethread: true,
+@@ -85,8 +85,7 @@ macro_rules! args {
+ // arguments just yet
+ limit_rdylib_exports: false,
- // we use the LLD shipped with the Rust toolchain by default
- linker: Some("rust-lld".into()),
@@ -26,10 +26,10 @@ index 88e7af5e669..14100a683f9 100644
pre_link_args,
diff --git a/compiler/rustc_target/src/spec/targets/aarch64_unknown_none_softfloat.rs b/compiler/rustc_target/src/spec/targets/aarch64_unknown_none_softfloat.rs
-index 35a4dd72b86..a9c8fc5edb8 100644
+index 222d5651b521..4b780bc8a8e7 100644
--- a/compiler/rustc_target/src/spec/targets/aarch64_unknown_none_softfloat.rs
+++ b/compiler/rustc_target/src/spec/targets/aarch64_unknown_none_softfloat.rs
-@@ -15,7 +15,7 @@ pub(crate) fn target() -> Target {
+@@ -14,7 +14,7 @@ pub fn target() -> Target {
let opts = TargetOptions {
abi: "softfloat".into(),
linker_flavor: LinkerFlavor::Gnu(Cc::No, Lld::Yes),
@@ -39,10 +39,10 @@ index 35a4dd72b86..a9c8fc5edb8 100644
relocation_model: RelocModel::Static,
disable_redzone: true,
diff --git a/compiler/rustc_target/src/spec/targets/aarch64_unknown_uefi.rs b/compiler/rustc_target/src/spec/targets/aarch64_unknown_uefi.rs
-index 327b52389b9..17313d7e8b3 100644
+index 429303170b6b..19d4ec53f6d8 100644
--- a/compiler/rustc_target/src/spec/targets/aarch64_unknown_uefi.rs
+++ b/compiler/rustc_target/src/spec/targets/aarch64_unknown_uefi.rs
-@@ -9,6 +9,7 @@ pub(crate) fn target() -> Target {
+@@ -9,6 +9,7 @@ pub fn target() -> Target {
base.max_atomic_width = Some(128);
base.add_pre_link_args(LinkerFlavor::Msvc(Lld::No), &["/machine:arm64"]);
base.features = "+v8a".into();
@@ -51,30 +51,30 @@ index 327b52389b9..17313d7e8b3 100644
Target {
llvm_target: "aarch64-unknown-windows".into(),
diff --git a/compiler/rustc_target/src/spec/targets/x86_64_unknown_none.rs b/compiler/rustc_target/src/spec/targets/x86_64_unknown_none.rs
-index 1a6343595f5..8015b082cd1 100644
+index 549706998d46..b7e9158ddef5 100644
--- a/compiler/rustc_target/src/spec/targets/x86_64_unknown_none.rs
+++ b/compiler/rustc_target/src/spec/targets/x86_64_unknown_none.rs
-@@ -19,7 +19,7 @@ pub(crate) fn target() -> Target {
+@@ -17,7 +17,7 @@ pub fn target() -> Target {
static_position_independent_executables: true,
relro_level: RelroLevel::Full,
linker_flavor: LinkerFlavor::Gnu(Cc::No, Lld::Yes),
- linker: Some("rust-lld".into()),
+ linker: Some("lld".into()),
- rustc_abi: Some(RustcAbi::X86Softfloat),
features: "-mmx,-sse,-sse2,-sse3,-ssse3,-sse4.1,-sse4.2,-avx,-avx2,+soft-float".into(),
supported_sanitizers: SanitizerSet::KCFI | SanitizerSet::KERNELADDRESS,
+ disable_redzone: true,
diff --git a/compiler/rustc_target/src/spec/targets/x86_64_unknown_uefi.rs b/compiler/rustc_target/src/spec/targets/x86_64_unknown_uefi.rs
-index 0cf6a879462..3677fc662de 100644
+index 6da1fcca58c8..c84ae44576d4 100644
--- a/compiler/rustc_target/src/spec/targets/x86_64_unknown_uefi.rs
+++ b/compiler/rustc_target/src/spec/targets/x86_64_unknown_uefi.rs
-@@ -15,6 +15,7 @@ pub(crate) fn target() -> Target {
+@@ -16,6 +16,7 @@ pub fn target() -> Target {
base.plt_by_default = false;
base.max_atomic_width = Some(64);
- base.entry_abi = CanonAbi::X86(X86Call::Win64);
+ base.entry_abi = Conv::X86_64Win64;
+ base.linker = Some("lld".into());
// We disable MMX and SSE for now, even though UEFI allows using them. Problem is, you have to
// enable these CPU features explicitly before their first use, otherwise their instructions
--
-2.49.0
+2.46.0
diff --git a/0001-add-support-for-ppc64le.patch b/0001-add-support-for-ppc64le.patch
index 30b86e1..dbd1e0e 100644
--- a/0001-add-support-for-ppc64le.patch
+++ b/0001-add-support-for-ppc64le.patch
@@ -8,19 +8,19 @@ Subject: [PATCH] add support for ppc64le
.../spec/targets/ppc64le_unknown_freebsd.rs | 23 +++++++++++++++++++
.../spec/targets/ppc64le_unknown_linux_gnu.rs | 23 +++++++++++++++++++
.../targets/ppc64le_unknown_linux_musl.rs | 23 +++++++++++++++++++
- src/bootstrap/configure.py | 5 ++++
- vendor/openssl-src-300.5.0+3.5.0/src/lib.rs | 3 +++
- vendor/target-lexicon-0.13.1/src/targets.rs | 3 +++
- 7 files changed, 82 insertions(+)
+ src/bootstrap/configure.py | 2 ++
+ vendor/openssl-src-111.28.1+1.1.1w/src/lib.rs | 3 +++
+ vendor/target-lexicon-0.12.15/src/targets.rs | 3 +++
+ 7 files changed, 79 insertions(+)
create mode 100644 compiler/rustc_target/src/spec/targets/ppc64le_unknown_freebsd.rs
create mode 100644 compiler/rustc_target/src/spec/targets/ppc64le_unknown_linux_gnu.rs
create mode 100644 compiler/rustc_target/src/spec/targets/ppc64le_unknown_linux_musl.rs
diff --git a/compiler/rustc_target/src/spec/mod.rs b/compiler/rustc_target/src/spec/mod.rs
-index 7234d1dc6..70d44f815 100644
+index 291a761..e6e80a1 100644
--- a/compiler/rustc_target/src/spec/mod.rs
+++ b/compiler/rustc_target/src/spec/mod.rs
-@@ -1760,6 +1760,8 @@ supported_targets! {
+@@ -1513,6 +1513,8 @@ supported_targets! {
("powerpc64-unknown-linux-musl", powerpc64_unknown_linux_musl),
("powerpc64le-unknown-linux-gnu", powerpc64le_unknown_linux_gnu),
("powerpc64le-unknown-linux-musl", powerpc64le_unknown_linux_musl),
@@ -31,13 +31,13 @@ index 7234d1dc6..70d44f815 100644
("sparc-unknown-linux-gnu", sparc_unknown_linux_gnu),
diff --git a/compiler/rustc_target/src/spec/targets/ppc64le_unknown_freebsd.rs b/compiler/rustc_target/src/spec/targets/ppc64le_unknown_freebsd.rs
new file mode 100644
-index 000000000..c02321db7
+index 0000000..615bb67
--- /dev/null
+++ b/compiler/rustc_target/src/spec/targets/ppc64le_unknown_freebsd.rs
@@ -0,0 +1,23 @@
+use crate::spec::{base, Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions};
+
-+pub(crate) fn target() -> Target {
++pub fn target() -> Target {
+ let mut base = base::freebsd::opts();
+ base.cpu = "ppc64le".into();
+ base.add_pre_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-m64"]);
@@ -60,13 +60,13 @@ index 000000000..c02321db7
+}
diff --git a/compiler/rustc_target/src/spec/targets/ppc64le_unknown_linux_gnu.rs b/compiler/rustc_target/src/spec/targets/ppc64le_unknown_linux_gnu.rs
new file mode 100644
-index 000000000..13423b9c5
+index 0000000..5ff45e2
--- /dev/null
+++ b/compiler/rustc_target/src/spec/targets/ppc64le_unknown_linux_gnu.rs
@@ -0,0 +1,23 @@
+use crate::spec::{base, Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions};
+
-+pub(crate) fn target() -> Target {
++pub fn target() -> Target {
+ let mut base = base::linux_gnu::opts();
+ base.cpu = "ppc64le".into();
+ base.add_pre_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-m64"]);
@@ -89,13 +89,13 @@ index 000000000..13423b9c5
+}
diff --git a/compiler/rustc_target/src/spec/targets/ppc64le_unknown_linux_musl.rs b/compiler/rustc_target/src/spec/targets/ppc64le_unknown_linux_musl.rs
new file mode 100644
-index 000000000..3f8a02be7
+index 0000000..2b612e7
--- /dev/null
+++ b/compiler/rustc_target/src/spec/targets/ppc64le_unknown_linux_musl.rs
@@ -0,0 +1,23 @@
+use crate::spec::{base, Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions};
+
-+pub(crate) fn target() -> Target {
++pub fn target() -> Target {
+ let mut base = base::linux_musl::opts();
+ base.cpu = "ppc64le".into();
+ base.add_pre_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-m64"]);
@@ -117,40 +117,37 @@ index 000000000..3f8a02be7
+ }
+}
diff --git a/src/bootstrap/configure.py b/src/bootstrap/configure.py
-index 0d4d6e0ff..5d0e213b3 100755
+index 768aac9..155f21e 100755
--- a/src/bootstrap/configure.py
+++ b/src/bootstrap/configure.py
-@@ -259,6 +259,11 @@ v(
- "target.powerpc64le-unknown-linux-musl.musl-root",
- "powerpc64le-unknown-linux-musl install directory",
- )
-+v(
-+ "musl-root-ppc64le",
-+ "target.ppc64le-unknown-linux-musl.musl-root",
-+ "ppc64le-unknown-linux-musl install directory",
-+)
- v(
- "musl-root-riscv32gc",
- "target.riscv32gc-unknown-linux-musl.musl-root",
-diff --git a/vendor/openssl-src-300.5.0+3.5.0/src/lib.rs b/vendor/openssl-src-300.5.0+3.5.0/src/lib.rs
-index f7d19d95d..9b574b1e5 100644
---- a/vendor/openssl-src-300.5.0+3.5.0/src/lib.rs
-+++ b/vendor/openssl-src-300.5.0+3.5.0/src/lib.rs
-@@ -368,6 +368,9 @@ impl Build {
- "powerpc64le-unknown-freebsd" => "BSD-ppc64le",
+@@ -127,6 +127,8 @@ v("musl-root-mips64", "target.mips64-unknown-linux-muslabi64.musl-root",
+ "mips64-unknown-linux-muslabi64 install directory")
+ v("musl-root-mips64el", "target.mips64el-unknown-linux-muslabi64.musl-root",
+ "mips64el-unknown-linux-muslabi64 install directory")
++v("musl-root-ppc64le", "target.ppc64le-unknown-linux-musl.musl-root",
++ "ppc64le-unknown-linux-musl install directory")
+ v("musl-root-riscv32gc", "target.riscv32gc-unknown-linux-musl.musl-root",
+ "riscv32gc-unknown-linux-musl install directory")
+ v("musl-root-riscv64gc", "target.riscv64gc-unknown-linux-musl.musl-root",
+diff --git a/vendor/openssl-src-111.28.2+1.1.1w/src/lib.rs b/vendor/openssl-src-111.28.2+1.1.1w/src/lib.rs
+index 1264742..14427a7 100644
+--- a/vendor/openssl-src-111.28.2+1.1.1w/src/lib.rs
++++ b/vendor/openssl-src-111.28.2+1.1.1w/src/lib.rs
+@@ -282,6 +282,9 @@ impl Build {
+ "powerpc64le-unknown-freebsd" => "BSD-generic64",
"powerpc64le-unknown-linux-gnu" => "linux-ppc64le",
"powerpc64le-unknown-linux-musl" => "linux-ppc64le",
-+ "ppc64le-unknown-freebsd" => "BSD-ppc64le",
++ "ppc64le-unknown-freebsd" => "BSD-generic64",
+ "ppc64le-unknown-linux-gnu" => "linux-ppc64le",
+ "ppc64le-unknown-linux-musl" => "linux-ppc64le",
- "powerpc64le-alpine-linux-musl" => "linux-ppc64le",
- "powerpc64le-chimera-linux-musl" => "linux-ppc64le",
- "riscv64gc-unknown-freebsd" => "BSD-riscv64",
-diff --git a/vendor/target-lexicon-0.13.1/src/targets.rs b/vendor/target-lexicon-0.13.1/src/targets.rs
-index 83c0eac8c..61b7fcc33 100644
---- a/vendor/target-lexicon-0.13.1/src/targets.rs
-+++ b/vendor/target-lexicon-0.13.1/src/targets.rs
-@@ -1811,6 +1811,9 @@ mod tests {
+ "riscv64gc-unknown-linux-gnu" => "linux-generic64",
+ "s390x-unknown-linux-gnu" => "linux64-s390x",
+ "s390x-unknown-linux-musl" => "linux64-s390x",
+diff --git a/vendor/target-lexicon-0.12.15/src/targets.rs b/vendor/target-lexicon-0.12.15/src/targets.rs
+index d14a7607b..f64e49568 100644
+--- a/vendor/target-lexicon-0.12.15/src/targets.rs
++++ b/vendor/target-lexicon-0.12.15/src/targets.rs
+@@ -1692,6 +1692,9 @@ mod tests {
"powerpc64le-unknown-freebsd",
"powerpc64le-unknown-linux-gnu",
"powerpc64le-unknown-linux-musl",
@@ -161,5 +158,5 @@ index 83c0eac8c..61b7fcc33 100644
"powerpc64-unknown-linux-gnu",
"powerpc64-unknown-linux-musl",
--
-2.49.0
+2.44.0
diff --git a/0001-add-support-for-sw64.patch b/0001-add-support-for-sw64.patch
new file mode 100755
index 0000000..040fb19
--- /dev/null
+++ b/0001-add-support-for-sw64.patch
@@ -0,0 +1,22477 @@
+From f3f6006adfd1729e1702e57371f7088c120079fe Mon Sep 17 00:00:00 2001
+From: zhangminxuan <zmx@wxiat.com>
+Date: Thu, 16 May 2024 18:52:07 +0800
+Subject: [PATCH] add support for sw_64
+
+---
+ compiler/rustc_codegen_llvm/src/asm.rs | 6 +
+ .../rustc_codegen_ssa/src/back/metadata.rs | 5 +
+ .../rustc_codegen_ssa/src/target_features.rs | 1 +
+ compiler/rustc_feature/src/unstable.rs | 1 +
+ compiler/rustc_llvm/build.rs | 1 +
+ .../rustc_llvm/llvm-wrapper/PassWrapper.cpp | 7 +
+ compiler/rustc_llvm/src/lib.rs | 8 +
+ compiler/rustc_span/src/symbol.rs | 1 +
+ compiler/rustc_target/src/abi/call/mod.rs | 2 +
+ compiler/rustc_target/src/abi/call/sw64.rs | 72 +
+ compiler/rustc_target/src/asm/mod.rs | 24 +
+ compiler/rustc_target/src/asm/sw64.rs | 127 +
+ compiler/rustc_target/src/spec/mod.rs | 1 +
+ .../spec/targets/sw_64_sunway_linux_gnu.rs | 26 +
+ compiler/rustc_target/src/target_features.rs | 4 +
+ config.example.toml | 2 +-
+ library/alloc/Cargo.toml | 1 +
+ library/core/Cargo.toml | 1 +
+ library/core/src/ffi/va_list.rs | 13 +
+ library/core/src/sync/atomic.rs | 3 +-
+ library/std/Cargo.toml | 1 +
+ library/std/src/env.rs | 1 +
+ library/std/src/os/linux/raw.rs | 1 +
+ library/std/src/sync/mpmc/utils.rs | 4 +-
+ library/std/src/sys/alloc/mod.rs | 1 +
+ .../pal/unix/process/process_unix/tests.rs | 5 +-
+ library/std/src/sys/personality/gcc.rs | 3 +
+ library/unwind/Cargo.toml | 7 +
+ library/unwind/src/libunwind.rs | 3 +
+ src/bootstrap/bootstrap.py | 2 +
+ src/bootstrap/src/core/build_steps/llvm.rs | 2 +-
+ src/librustdoc/clean/cfg.rs | 1 +
+ src/tools/build-manifest/src/main.rs | 2 +
+ src/tools/compiletest/src/command-list.rs | 1 +
+ src/tools/tidy/src/target_specific_tests.rs | 1 +
+ tests/ui/abi/compatibility.rs | 10 +-
+ tests/ui/cfg/conditional-compile-arch.rs | 3 +
+ tests/ui/check-cfg/well-known-values.stderr | 4 +-
+ tests/ui/target-feature/gate.rs | 1 +
+ vendor/cc-1.1.6/src/lib.rs | 1 +
+ .../src/float/conv.rs | 8 +
+ .../compiler_builtins-0.1.123/src/int/mul.rs | 1 +
+ .../compiler_builtins-0.1.123/src/int/sdiv.rs | 4 +-
+ .../compiler_builtins-0.1.123/src/int/udiv.rs | 2 +
+ .../compiler_builtins-0.1.123/src/macros.rs | 95 +
+ .../src/unix/linux_like/linux/align.rs | 2 +
+ .../src/unix/linux_like/linux/arch/mod.rs | 3 +
+ .../unix/linux_like/linux/arch/sw64/mod.rs | 120 +
+ .../src/unix/linux_like/linux/gnu/b64/mod.rs | 17 +
+ .../src/unix/linux_like/linux/gnu/b64/sw64.rs | 943 +++++
+ .../src/unix/linux_like/linux/gnu/mod.rs | 21 +-
+ .../src/unix/linux_like/linux/mod.rs | 9 +
+ .../src/unix/linux_like/linux/no_align.rs | 2 +
+ .../libc-0.2.155/src/unix/linux_like/mod.rs | 33 +-
+ .../src/unix/linux_like/linux/align.rs | 2 +
+ .../src/unix/linux_like/linux/arch/mod.rs | 3 +
+ .../unix/linux_like/linux/arch/sw64/mod.rs | 120 +
+ .../src/unix/linux_like/linux/gnu/b64/mod.rs | 17 +
+ .../src/unix/linux_like/linux/gnu/b64/sw64.rs | 943 +++++
+ .../src/unix/linux_like/linux/gnu/mod.rs | 21 +-
+ .../src/unix/linux_like/linux/mod.rs | 9 +
+ .../src/unix/linux_like/linux/no_align.rs | 2 +
+ .../libc-0.2.157/src/unix/linux_like/mod.rs | 33 +-
+ .../src/unix/linux_like/linux/align.rs | 2 +
+ .../src/unix/linux_like/linux/arch/mod.rs | 3 +
+ .../unix/linux_like/linux/arch/sw64/mod.rs | 120 +
+ .../src/unix/linux_like/linux/gnu/b64/mod.rs | 17 +
+ .../src/unix/linux_like/linux/gnu/b64/sw64.rs | 943 +++++
+ .../src/unix/linux_like/linux/gnu/mod.rs | 21 +-
+ .../src/unix/linux_like/linux/mod.rs | 9 +
+ .../src/unix/linux_like/linux/no_align.rs | 2 +
+ .../libc-0.2.158/src/unix/linux_like/mod.rs | 33 +-
+ vendor/linux-raw-sys-0.4.14/src/lib.rs | 60 +
+ .../src/sw_64/bootparam.rs | 3 +
+ .../linux-raw-sys-0.4.14/src/sw_64/errno.rs | 137 +
+ .../linux-raw-sys-0.4.14/src/sw_64/general.rs | 3030 +++++++++++++++++
+ .../linux-raw-sys-0.4.14/src/sw_64/if_arp.rs | 2675 +++++++++++++++
+ .../src/sw_64/if_ether.rs | 177 +
+ .../src/sw_64/if_packet.rs | 317 ++
+ .../src/sw_64/io_uring.rs | 1096 ++++++
+ .../linux-raw-sys-0.4.14/src/sw_64/ioctl.rs | 1600 +++++++++
+ .../src/sw_64/loop_device.rs | 141 +
+ .../src/sw_64/mempolicy.rs | 175 +
+ vendor/linux-raw-sys-0.4.14/src/sw_64/net.rs | 2514 ++++++++++++++
+ .../linux-raw-sys-0.4.14/src/sw_64/netlink.rs | 2864 ++++++++++++++++
+ .../linux-raw-sys-0.4.14/src/sw_64/prctl.rs | 231 ++
+ .../linux-raw-sys-0.4.14/src/sw_64/system.rs | 139 +
+ vendor/linux-raw-sys-0.4.14/src/sw_64/xdp.rs | 169 +
+ vendor/nix-0.28.0/src/sys/ioctl/linux.rs | 1 +
+ vendor/nix-0.28.0/src/sys/signal.rs | 5 +
+ vendor/nix-0.28.0/src/sys/statfs.rs | 40 +
+ vendor/nix-0.28.0/src/sys/termios.rs | 2 +-
+ vendor/nix-0.29.0/src/fcntl.rs | 1 +
+ vendor/nix-0.29.0/src/sys/ioctl/linux.rs | 1 +
+ vendor/nix-0.29.0/src/sys/signal.rs | 5 +
+ vendor/nix-0.29.0/src/sys/statfs.rs | 40 +
+ vendor/nix-0.29.0/src/sys/termios.rs | 2 +-
+ vendor/object-0.32.2/src/common.rs | 2 +
+ vendor/object-0.32.2/src/elf.rs | 116 +
+ vendor/object-0.32.2/src/read/elf/file.rs | 1 +
+ .../object-0.32.2/src/read/elf/relocation.rs | 5 +
+ vendor/object-0.32.2/src/write/elf/object.rs | 10 +
+ vendor/object-0.33.0/src/common.rs | 2 +
+ vendor/object-0.33.0/src/elf.rs | 120 +-
+ vendor/object-0.33.0/src/read/elf/file.rs | 1 +
+ .../object-0.33.0/src/read/elf/relocation.rs | 5 +
+ vendor/object-0.36.2/src/common.rs | 2 +
+ vendor/object-0.36.2/src/elf.rs | 116 +
+ vendor/object-0.36.2/src/read/elf/file.rs | 1 +
+ .../object-0.36.2/src/read/elf/relocation.rs | 5 +
+ vendor/object-0.36.2/src/write/elf/object.rs | 9 +
+ vendor/object-0.36.3/src/common.rs | 2 +
+ vendor/object-0.36.3/src/elf.rs | 116 +
+ vendor/object-0.36.3/src/read/elf/file.rs | 1 +
+ .../object-0.36.3/src/read/elf/relocation.rs | 5 +
+ vendor/object-0.36.3/src/write/elf/object.rs | 9 +
+ vendor/psm-0.1.21/build.rs | 1 +
+ vendor/psm-0.1.21/src/arch/sw64.s | 88 +
+ vendor/rustix-0.38.34/build.rs | 2 +-
+ vendor/rustix-0.38.34/src/backend/libc/c.rs | 2 +-
+ .../src/backend/libc/fs/syscalls.rs | 6 +-
+ .../src/backend/libc/termios/syscalls.rs | 4 +-
+ .../src/backend/linux_raw/arch/mod.rs | 1 +
+ vendor/rustix-0.38.34/src/ioctl/linux.rs | 1 +
+ vendor/rustix-0.38.34/src/signal.rs | 6 +-
+ vendor/rustix-0.38.34/src/termios/types.rs | 6 +-
+ 127 files changed, 19943 insertions(+), 48 deletions(-)
+ create mode 100644 compiler/rustc_target/src/abi/call/sw64.rs
+ create mode 100644 compiler/rustc_target/src/asm/sw64.rs
+ create mode 100644 compiler/rustc_target/src/spec/targets/sw_64_sunway_linux_gnu.rs
+ create mode 100644 vendor/libc-0.2.155/src/unix/linux_like/linux/arch/sw64/mod.rs
+ create mode 100644 vendor/libc-0.2.155/src/unix/linux_like/linux/gnu/b64/sw64.rs
+ create mode 100644 vendor/libc-0.2.157/src/unix/linux_like/linux/arch/sw64/mod.rs
+ create mode 100644 vendor/libc-0.2.157/src/unix/linux_like/linux/gnu/b64/sw64.rs
+ create mode 100644 vendor/libc-0.2.158/src/unix/linux_like/linux/arch/sw64/mod.rs
+ create mode 100644 vendor/libc-0.2.158/src/unix/linux_like/linux/gnu/b64/sw64.rs
+ create mode 100644 vendor/linux-raw-sys-0.4.14/src/sw_64/bootparam.rs
+ create mode 100644 vendor/linux-raw-sys-0.4.14/src/sw_64/errno.rs
+ create mode 100644 vendor/linux-raw-sys-0.4.14/src/sw_64/general.rs
+ create mode 100644 vendor/linux-raw-sys-0.4.14/src/sw_64/if_arp.rs
+ create mode 100644 vendor/linux-raw-sys-0.4.14/src/sw_64/if_ether.rs
+ create mode 100644 vendor/linux-raw-sys-0.4.14/src/sw_64/if_packet.rs
+ create mode 100644 vendor/linux-raw-sys-0.4.14/src/sw_64/io_uring.rs
+ create mode 100644 vendor/linux-raw-sys-0.4.14/src/sw_64/ioctl.rs
+ create mode 100644 vendor/linux-raw-sys-0.4.14/src/sw_64/loop_device.rs
+ create mode 100644 vendor/linux-raw-sys-0.4.14/src/sw_64/mempolicy.rs
+ create mode 100644 vendor/linux-raw-sys-0.4.14/src/sw_64/net.rs
+ create mode 100644 vendor/linux-raw-sys-0.4.14/src/sw_64/netlink.rs
+ create mode 100644 vendor/linux-raw-sys-0.4.14/src/sw_64/prctl.rs
+ create mode 100644 vendor/linux-raw-sys-0.4.14/src/sw_64/system.rs
+ create mode 100644 vendor/linux-raw-sys-0.4.14/src/sw_64/xdp.rs
+ create mode 100644 vendor/psm-0.1.21/src/arch/sw64.s
+
+diff --git a/compiler/rustc_codegen_llvm/src/asm.rs b/compiler/rustc_codegen_llvm/src/asm.rs
+index 1d91c3fb17d..6ec032ebc74 100644
+--- a/compiler/rustc_codegen_llvm/src/asm.rs
++++ b/compiler/rustc_codegen_llvm/src/asm.rs
+@@ -269,6 +269,7 @@ fn codegen_inline_asm(
+ constraints.push("~{cc}".to_string());
+ }
+ InlineAsmArch::SpirV => {}
++ InlineAsmArch::Sw64 => {}
+ InlineAsmArch::Wasm32 | InlineAsmArch::Wasm64 => {}
+ InlineAsmArch::Bpf => {}
+ InlineAsmArch::Msp430 => {
+@@ -670,6 +671,8 @@ fn reg_to_llvm(reg: InlineAsmRegOrRegClass, layout: Option<&TyAndLayout<'_>>) ->
+ InlineAsmRegClass::Hexagon(HexagonInlineAsmRegClass::reg) => "r",
+ InlineAsmRegClass::LoongArch(LoongArchInlineAsmRegClass::reg) => "r",
+ InlineAsmRegClass::LoongArch(LoongArchInlineAsmRegClass::freg) => "f",
++ InlineAsmRegClass::Sw64(Sw64InlineAsmRegClass::reg) => "r",
++ InlineAsmRegClass::Sw64(Sw64InlineAsmRegClass::freg) => "f",
+ InlineAsmRegClass::Mips(MipsInlineAsmRegClass::reg) => "r",
+ InlineAsmRegClass::Mips(MipsInlineAsmRegClass::freg) => "f",
+ InlineAsmRegClass::Nvptx(NvptxInlineAsmRegClass::reg16) => "h",
+@@ -760,6 +763,7 @@ fn modifier_to_llvm(
+ }
+ InlineAsmRegClass::Hexagon(_) => None,
+ InlineAsmRegClass::LoongArch(_) => None,
++ InlineAsmRegClass::Sw64(_) => None,
+ InlineAsmRegClass::Mips(_) => None,
+ InlineAsmRegClass::Nvptx(_) => None,
+ InlineAsmRegClass::PowerPC(_) => None,
+@@ -849,6 +853,8 @@ fn dummy_output_type<'ll>(cx: &CodegenCx<'ll, '_>, reg: InlineAsmRegClass) -> &'
+ InlineAsmRegClass::LoongArch(LoongArchInlineAsmRegClass::freg) => cx.type_f32(),
+ InlineAsmRegClass::Mips(MipsInlineAsmRegClass::reg) => cx.type_i32(),
+ InlineAsmRegClass::Mips(MipsInlineAsmRegClass::freg) => cx.type_f32(),
++ InlineAsmRegClass::Sw64(Sw64InlineAsmRegClass::reg) => cx.type_i32(),
++ InlineAsmRegClass::Sw64(Sw64InlineAsmRegClass::freg) => cx.type_f32(),
+ InlineAsmRegClass::Nvptx(NvptxInlineAsmRegClass::reg16) => cx.type_i16(),
+ InlineAsmRegClass::Nvptx(NvptxInlineAsmRegClass::reg32) => cx.type_i32(),
+ InlineAsmRegClass::Nvptx(NvptxInlineAsmRegClass::reg64) => cx.type_i64(),
+diff --git a/compiler/rustc_codegen_ssa/src/back/metadata.rs b/compiler/rustc_codegen_ssa/src/back/metadata.rs
+index 9b5a797ad51..025d9db7724 100644
+--- a/compiler/rustc_codegen_ssa/src/back/metadata.rs
++++ b/compiler/rustc_codegen_ssa/src/back/metadata.rs
+@@ -196,6 +196,7 @@ pub(crate) fn create_object_file(sess: &Session) -> Option<write::Object<'static
+ "s390x" => (Architecture::S390x, None),
+ "mips" | "mips32r6" => (Architecture::Mips, None),
+ "mips64" | "mips64r6" => (Architecture::Mips64, None),
++ "sw64" => (Architecture::Sw64, None),
+ "x86_64" => (
+ if sess.target.pointer_width == 32 {
+ Architecture::X86_64_X32
+@@ -350,6 +351,10 @@ pub(crate) fn create_object_file(sess: &Session) -> Option<write::Object<'static
+ // the appropriate EF_AVR_ARCH flag.
+ ef_avr_arch(&sess.target.options.cpu)
+ }
++ Architecture::Sw64 => {
++ let e_flags = elf::EF_SW_64_32BIT | elf::EF_SW_64_CANRELAX;
++ e_flags
++ }
+ Architecture::Csky => {
+ let e_flags = match sess.target.options.abi.as_ref() {
+ "abiv2" => elf::EF_CSKY_ABIV2,
+diff --git a/compiler/rustc_codegen_ssa/src/target_features.rs b/compiler/rustc_codegen_ssa/src/target_features.rs
+index cf8f7fa25d8..bb381a9f3fb 100644
+--- a/compiler/rustc_codegen_ssa/src/target_features.rs
++++ b/compiler/rustc_codegen_ssa/src/target_features.rs
+@@ -78,6 +78,7 @@ pub fn from_target_feature(
+ Some(sym::aarch64_ver_target_feature) => rust_features.aarch64_ver_target_feature,
+ Some(sym::csky_target_feature) => rust_features.csky_target_feature,
+ Some(sym::loongarch_target_feature) => rust_features.loongarch_target_feature,
++ Some(sym::sw64_target_feature) => rust_features.sw64_target_feature,
+ Some(sym::lahfsahf_target_feature) => rust_features.lahfsahf_target_feature,
+ Some(sym::prfchw_target_feature) => rust_features.prfchw_target_feature,
+ Some(sym::sha512_sm_x86) => rust_features.sha512_sm_x86,
+diff --git a/compiler/rustc_feature/src/unstable.rs b/compiler/rustc_feature/src/unstable.rs
+index 2827eb43ef6..c982df95878 100644
+--- a/compiler/rustc_feature/src/unstable.rs
++++ b/compiler/rustc_feature/src/unstable.rs
+@@ -319,6 +319,7 @@ pub fn internal(&self, feature: Symbol) -> bool {
+ (unstable, rtm_target_feature, "1.35.0", Some(44839)),
+ (unstable, s390x_target_feature, "1.82.0", Some(44839)),
+ (unstable, sse4a_target_feature, "1.27.0", Some(44839)),
++ (unstable, sw64_target_feature, "1.81.0", Some(44839)),
+ (unstable, tbm_target_feature, "1.27.0", Some(44839)),
+ (unstable, wasm_target_feature, "1.30.0", Some(44839)),
+ // !!!! !!!! !!!! !!!! !!!! !!!! !!!! !!!! !!!! !!!! !!!!
+diff --git a/compiler/rustc_llvm/build.rs b/compiler/rustc_llvm/build.rs
+index b2ff9efb41c..1dddb1af047 100644
+--- a/compiler/rustc_llvm/build.rs
++++ b/compiler/rustc_llvm/build.rs
+@@ -14,6 +14,7 @@
+ "m68k",
+ "csky",
+ "mips",
++ "sw64",
+ "powerpc",
+ "systemz",
+ "jsbackend",
+diff --git a/compiler/rustc_llvm/llvm-wrapper/PassWrapper.cpp b/compiler/rustc_llvm/llvm-wrapper/PassWrapper.cpp
+index c7306b0516f..0618e7ee3b7 100644
+--- a/compiler/rustc_llvm/llvm-wrapper/PassWrapper.cpp
++++ b/compiler/rustc_llvm/llvm-wrapper/PassWrapper.cpp
+@@ -173,6 +173,12 @@ extern "C" void LLVMRustTimeTraceProfilerFinish(const char *FileName) {
+ #define SUBTARGET_LOONGARCH
+ #endif
+
++#ifdef LLVM_COMPONENT_SW64
++#define SUBTARGET_SW64 SUBTARGET(SW64)
++#else
++#define SUBTARGET_SW64
++#endif
++
+ #define GEN_SUBTARGETS \
+ SUBTARGET_X86 \
+ SUBTARGET_ARM \
+@@ -188,6 +194,7 @@ extern "C" void LLVMRustTimeTraceProfilerFinish(const char *FileName) {
+ SUBTARGET_HEXAGON \
+ SUBTARGET_XTENSA \
+ SUBTARGET_RISCV \
++ SUBTARGET_SW64 \
+ SUBTARGET_LOONGARCH
+
+ #define SUBTARGET(x) \
+diff --git a/compiler/rustc_llvm/src/lib.rs b/compiler/rustc_llvm/src/lib.rs
+index 3532d50c64e..389dab7e219 100644
+--- a/compiler/rustc_llvm/src/lib.rs
++++ b/compiler/rustc_llvm/src/lib.rs
+@@ -132,6 +132,14 @@ fn init() { }
+ LLVMInitializeMipsAsmPrinter,
+ LLVMInitializeMipsAsmParser
+ );
++ init_target!(
++ llvm_component = "sw64",
++ LLVMInitializeSw64TargetInfo,
++ LLVMInitializeSw64Target,
++ LLVMInitializeSw64TargetMC,
++ LLVMInitializeSw64AsmPrinter,
++ LLVMInitializeSw64AsmParser
++ );
+ init_target!(
+ llvm_component = "powerpc",
+ LLVMInitializePowerPCTargetInfo,
+diff --git a/compiler/rustc_span/src/symbol.rs b/compiler/rustc_span/src/symbol.rs
+index 16f5e55835e..096bee694a4 100644
+--- a/compiler/rustc_span/src/symbol.rs
++++ b/compiler/rustc_span/src/symbol.rs
+@@ -1867,6 +1867,7 @@
+ sub_with_overflow,
+ suggestion,
+ surface_async_drop_in_place,
++ sw64_target_feature,
+ sym,
+ sync,
+ synthetic,
+diff --git a/compiler/rustc_target/src/abi/call/mod.rs b/compiler/rustc_target/src/abi/call/mod.rs
+index 082c169b210..76ac35a7f26 100644
+--- a/compiler/rustc_target/src/abi/call/mod.rs
++++ b/compiler/rustc_target/src/abi/call/mod.rs
+@@ -18,6 +18,7 @@
+ mod m68k;
+ mod mips;
+ mod mips64;
++mod sw64;
+ mod msp430;
+ mod nvptx64;
+ mod powerpc;
+@@ -929,6 +930,7 @@ pub fn adjust_for_foreign_abi<C>(
+ "mips" | "mips32r6" => mips::compute_abi_info(cx, self),
+ "mips64" | "mips64r6" => mips64::compute_abi_info(cx, self),
+ "powerpc" => powerpc::compute_abi_info(cx, self),
++ "sw64" => sw64::compute_abi_info(cx, self),
+ "powerpc64" => powerpc64::compute_abi_info(cx, self),
+ "s390x" => s390x::compute_abi_info(cx, self),
+ "msp430" => msp430::compute_abi_info(self),
+diff --git a/compiler/rustc_target/src/abi/call/sw64.rs b/compiler/rustc_target/src/abi/call/sw64.rs
+new file mode 100644
+index 00000000000..1947fc210a5
+--- /dev/null
++++ b/compiler/rustc_target/src/abi/call/sw64.rs
+@@ -0,0 +1,72 @@
++use crate::abi::call::{ArgAbi, ArgExtension, FnAbi, PassMode, Reg, Uniform};
++use crate::abi::{self, HasDataLayout, TyAbiInterface};
++
++fn extend_integer_width_sw64<Ty>(arg: &mut ArgAbi<'_, Ty>, bits: u64) {
++ // Always sign extend u32 values on 64-bit sw64
++ if let abi::Abi::Scalar(ref scalar) = arg.layout.abi {
++ if let abi::Int(i, signed) = scalar.primitive() {
++ if !signed && i.size().bits() == 32 {
++ if let PassMode::Direct(ref mut attrs) = arg.mode {
++ attrs.ext(ArgExtension::Sext);
++ return;
++ }
++ }
++ }
++ }
++
++ arg.extend_integer_width_to(bits);
++}
++
++fn classify_ret<'a, Ty, C>(_cx: &C, ret: &mut ArgAbi<'a, Ty>)
++where
++ Ty: TyAbiInterface<'a, C> + Copy,
++ C: HasDataLayout,
++{
++ if !ret.layout.is_aggregate() && ret.layout.size.bits() <= 64 {
++ extend_integer_width_sw64(ret, 64);
++ } else {
++ ret.make_indirect();
++ }
++}
++
++fn classify_arg<'a, Ty, C>(_cx: &C, arg: &mut ArgAbi<'a, Ty>)
++where
++ Ty: TyAbiInterface<'a, C> + Copy,
++ C: HasDataLayout,
++{
++ if !arg.layout.is_aggregate() {
++ extend_integer_width_sw64(arg, 64);
++ return;
++ }
++
++ let size = arg.layout.size;
++
++ match arg.layout.fields {
++ abi::FieldsShape::Primitive => unreachable!(),
++ abi::FieldsShape::Array { .. } => {
++ // Arrays are passed indirectly
++ arg.make_indirect();
++ return;
++ }
++ _ => {}
++ };
++
++ arg.cast_to(Uniform::new(Reg::i64(), size));
++}
++
++pub fn compute_abi_info<'a, Ty, C>(cx: &C, fn_abi: &mut FnAbi<'a, Ty>)
++where
++ Ty: TyAbiInterface<'a, C> + Copy,
++ C: HasDataLayout,
++{
++ if !fn_abi.ret.is_ignore() {
++ classify_ret(cx, &mut fn_abi.ret);
++ }
++
++ for arg in &mut fn_abi.args.iter_mut() {
++ if arg.is_ignore() {
++ continue;
++ }
++ classify_arg(cx, arg);
++ }
++}
+diff --git a/compiler/rustc_target/src/asm/mod.rs b/compiler/rustc_target/src/asm/mod.rs
+index 4d8c5cea8a8..5cedd65b9bc 100644
+--- a/compiler/rustc_target/src/asm/mod.rs
++++ b/compiler/rustc_target/src/asm/mod.rs
+@@ -184,6 +184,7 @@ macro_rules! types {
+ mod csky;
+ mod hexagon;
+ mod loongarch;
++mod sw64;
+ mod m68k;
+ mod mips;
+ mod msp430;
+@@ -204,6 +205,7 @@ macro_rules! types {
+ pub use loongarch::{LoongArchInlineAsmReg, LoongArchInlineAsmRegClass};
+ pub use m68k::{M68kInlineAsmReg, M68kInlineAsmRegClass};
+ pub use mips::{MipsInlineAsmReg, MipsInlineAsmRegClass};
++pub use sw64::{Sw64InlineAsmReg, Sw64InlineAsmRegClass};
+ pub use msp430::{Msp430InlineAsmReg, Msp430InlineAsmRegClass};
+ pub use nvptx::{NvptxInlineAsmReg, NvptxInlineAsmRegClass};
+ pub use powerpc::{PowerPCInlineAsmReg, PowerPCInlineAsmRegClass};
+@@ -227,6 +229,7 @@ pub enum InlineAsmArch {
+ LoongArch64,
+ Mips,
+ Mips64,
++ Sw64,
+ PowerPC,
+ PowerPC64,
+ S390x,
+@@ -257,6 +260,7 @@ fn from_str(s: &str) -> Result<InlineAsmArch, ()> {
+ "powerpc64" => Ok(Self::PowerPC64),
+ "hexagon" => Ok(Self::Hexagon),
+ "loongarch64" => Ok(Self::LoongArch64),
++ "sw64" => Ok(Self::Sw64),
+ "mips" | "mips32r6" => Ok(Self::Mips),
+ "mips64" | "mips64r6" => Ok(Self::Mips64),
+ "s390x" => Ok(Self::S390x),
+@@ -284,6 +288,7 @@ pub enum InlineAsmReg {
+ PowerPC(PowerPCInlineAsmReg),
+ Hexagon(HexagonInlineAsmReg),
+ LoongArch(LoongArchInlineAsmReg),
++ Sw64(Sw64InlineAsmReg),
+ Mips(MipsInlineAsmReg),
+ S390x(S390xInlineAsmReg),
+ SpirV(SpirVInlineAsmReg),
+@@ -307,6 +312,7 @@ pub fn name(self) -> &'static str {
+ Self::PowerPC(r) => r.name(),
+ Self::Hexagon(r) => r.name(),
+ Self::LoongArch(r) => r.name(),
++ Self::Sw64(r) => r.name(),
+ Self::Mips(r) => r.name(),
+ Self::S390x(r) => r.name(),
+ Self::Bpf(r) => r.name(),
+@@ -327,6 +333,7 @@ pub fn reg_class(self) -> InlineAsmRegClass {
+ Self::PowerPC(r) => InlineAsmRegClass::PowerPC(r.reg_class()),
+ Self::Hexagon(r) => InlineAsmRegClass::Hexagon(r.reg_class()),
+ Self::LoongArch(r) => InlineAsmRegClass::LoongArch(r.reg_class()),
++ Self::Sw64(r) => InlineAsmRegClass::Sw64(r.reg_class()),
+ Self::Mips(r) => InlineAsmRegClass::Mips(r.reg_class()),
+ Self::S390x(r) => InlineAsmRegClass::S390x(r.reg_class()),
+ Self::Bpf(r) => InlineAsmRegClass::Bpf(r.reg_class()),
+@@ -357,6 +364,7 @@ pub fn parse(arch: InlineAsmArch, name: Symbol) -> Result<Self, &'static str> {
+ }
+ InlineAsmArch::Hexagon => Self::Hexagon(HexagonInlineAsmReg::parse(name)?),
+ InlineAsmArch::LoongArch64 => Self::LoongArch(LoongArchInlineAsmReg::parse(name)?),
++ InlineAsmArch::Sw64 => Self::Sw64(Sw64InlineAsmReg::parse(name)?),
+ InlineAsmArch::Mips | InlineAsmArch::Mips64 => {
+ Self::Mips(MipsInlineAsmReg::parse(name)?)
+ }
+@@ -391,6 +399,7 @@ pub fn validate(
+ Self::LoongArch(r) => {
+ r.validate(arch, reloc_model, target_features, target, is_clobber)
+ }
++ Self::Sw64(r) => r.validate(arch, reloc_model, target_features, target, is_clobber),
+ Self::Mips(r) => r.validate(arch, reloc_model, target_features, target, is_clobber),
+ Self::S390x(r) => r.validate(arch, reloc_model, target_features, target, is_clobber),
+ Self::Bpf(r) => r.validate(arch, reloc_model, target_features, target, is_clobber),
+@@ -418,6 +427,7 @@ pub fn emit(
+ Self::PowerPC(r) => r.emit(out, arch, modifier),
+ Self::Hexagon(r) => r.emit(out, arch, modifier),
+ Self::LoongArch(r) => r.emit(out, arch, modifier),
++ Self::Sw64(r) => r.emit(out, arch, modifier),
+ Self::Mips(r) => r.emit(out, arch, modifier),
+ Self::S390x(r) => r.emit(out, arch, modifier),
+ Self::Bpf(r) => r.emit(out, arch, modifier),
+@@ -438,6 +448,7 @@ pub fn overlapping_regs(self, mut cb: impl FnMut(InlineAsmReg)) {
+ Self::PowerPC(r) => r.overlapping_regs(|r| cb(Self::PowerPC(r))),
+ Self::Hexagon(r) => r.overlapping_regs(|r| cb(Self::Hexagon(r))),
+ Self::LoongArch(_) => cb(self),
++ Self::Sw64(_) => cb(self),
+ Self::Mips(_) => cb(self),
+ Self::S390x(_) => cb(self),
+ Self::Bpf(r) => r.overlapping_regs(|r| cb(Self::Bpf(r))),
+@@ -461,6 +472,7 @@ pub enum InlineAsmRegClass {
+ PowerPC(PowerPCInlineAsmRegClass),
+ Hexagon(HexagonInlineAsmRegClass),
+ LoongArch(LoongArchInlineAsmRegClass),
++ Sw64(Sw64InlineAsmRegClass),
+ Mips(MipsInlineAsmRegClass),
+ S390x(S390xInlineAsmRegClass),
+ SpirV(SpirVInlineAsmRegClass),
+@@ -485,6 +497,7 @@ pub fn name(self) -> Symbol {
+ Self::PowerPC(r) => r.name(),
+ Self::Hexagon(r) => r.name(),
+ Self::LoongArch(r) => r.name(),
++ Self::Sw64(r) => r.name(),
+ Self::Mips(r) => r.name(),
+ Self::S390x(r) => r.name(),
+ Self::SpirV(r) => r.name(),
+@@ -512,6 +525,7 @@ pub fn suggest_class(self, arch: InlineAsmArch, ty: InlineAsmType) -> Option<Sel
+ Self::Hexagon(r) => r.suggest_class(arch, ty).map(InlineAsmRegClass::Hexagon),
+ Self::LoongArch(r) => r.suggest_class(arch, ty).map(InlineAsmRegClass::LoongArch),
+ Self::Mips(r) => r.suggest_class(arch, ty).map(InlineAsmRegClass::Mips),
++ Self::Sw64(r) => r.suggest_class(arch, ty).map(InlineAsmRegClass::Sw64),
+ Self::S390x(r) => r.suggest_class(arch, ty).map(InlineAsmRegClass::S390x),
+ Self::SpirV(r) => r.suggest_class(arch, ty).map(InlineAsmRegClass::SpirV),
+ Self::Wasm(r) => r.suggest_class(arch, ty).map(InlineAsmRegClass::Wasm),
+@@ -540,6 +554,7 @@ pub fn suggest_modifier(self, arch: InlineAsmArch, ty: InlineAsmType) -> Option<
+ Self::PowerPC(r) => r.suggest_modifier(arch, ty),
+ Self::Hexagon(r) => r.suggest_modifier(arch, ty),
+ Self::LoongArch(r) => r.suggest_modifier(arch, ty),
++ Self::Sw64(r) => r.suggest_modifier(arch, ty),
+ Self::Mips(r) => r.suggest_modifier(arch, ty),
+ Self::S390x(r) => r.suggest_modifier(arch, ty),
+ Self::SpirV(r) => r.suggest_modifier(arch, ty),
+@@ -569,6 +584,7 @@ pub fn default_modifier(self, arch: InlineAsmArch) -> Option<ModifierInfo> {
+ Self::PowerPC(r) => r.default_modifier(arch),
+ Self::Hexagon(r) => r.default_modifier(arch),
+ Self::LoongArch(r) => r.default_modifier(arch),
++ Self::Sw64(r) => r.default_modifier(arch),
+ Self::Mips(r) => r.default_modifier(arch),
+ Self::S390x(r) => r.default_modifier(arch),
+ Self::SpirV(r) => r.default_modifier(arch),
+@@ -597,6 +613,7 @@ pub fn supported_types(
+ Self::PowerPC(r) => r.supported_types(arch),
+ Self::Hexagon(r) => r.supported_types(arch),
+ Self::LoongArch(r) => r.supported_types(arch),
++ Self::Sw64(r) => r.supported_types(arch),
+ Self::Mips(r) => r.supported_types(arch),
+ Self::S390x(r) => r.supported_types(arch),
+ Self::SpirV(r) => r.supported_types(arch),
+@@ -628,6 +645,7 @@ pub fn parse(arch: InlineAsmArch, name: Symbol) -> Result<Self, &'static str> {
+ }
+ InlineAsmArch::Hexagon => Self::Hexagon(HexagonInlineAsmRegClass::parse(name)?),
+ InlineAsmArch::LoongArch64 => Self::LoongArch(LoongArchInlineAsmRegClass::parse(name)?),
++ InlineAsmArch::Sw64 => Self::Sw64(Sw64InlineAsmRegClass::parse(name)?),
+ InlineAsmArch::Mips | InlineAsmArch::Mips64 => {
+ Self::Mips(MipsInlineAsmRegClass::parse(name)?)
+ }
+@@ -656,6 +674,7 @@ pub fn valid_modifiers(self, arch: InlineAsmArch) -> &'static [char] {
+ Self::PowerPC(r) => r.valid_modifiers(arch),
+ Self::Hexagon(r) => r.valid_modifiers(arch),
+ Self::LoongArch(r) => r.valid_modifiers(arch),
++ Self::Sw64(r) => r.valid_modifiers(arch),
+ Self::Mips(r) => r.valid_modifiers(arch),
+ Self::S390x(r) => r.valid_modifiers(arch),
+ Self::SpirV(r) => r.valid_modifiers(arch),
+@@ -833,6 +852,11 @@ pub fn allocatable_registers(
+ loongarch::fill_reg_map(arch, reloc_model, target_features, target, &mut map);
+ map
+ }
++ InlineAsmArch::Sw64 => {
++ let mut map = sw64::regclass_map();
++ sw64::fill_reg_map(arch, reloc_model, target_features, target, &mut map);
++ map
++ }
+ InlineAsmArch::Mips | InlineAsmArch::Mips64 => {
+ let mut map = mips::regclass_map();
+ mips::fill_reg_map(arch, reloc_model, target_features, target, &mut map);
+diff --git a/compiler/rustc_target/src/asm/sw64.rs b/compiler/rustc_target/src/asm/sw64.rs
+new file mode 100644
+index 00000000000..404f51c41dc
+--- /dev/null
++++ b/compiler/rustc_target/src/asm/sw64.rs
+@@ -0,0 +1,127 @@
++use super::{InlineAsmArch, InlineAsmType, ModifierInfo};
++use rustc_span::Symbol;
++use std::fmt;
++
++def_reg_class! {
++ Sw64 Sw64InlineAsmRegClass {
++ reg,
++ freg,
++ }
++}
++
++impl Sw64InlineAsmRegClass {
++ pub fn valid_modifiers(self, _arch: super::InlineAsmArch) -> &'static [char] {
++ &[]
++ }
++
++ pub fn suggest_class(self, _arch: InlineAsmArch, _ty: InlineAsmType) -> Option<Self> {
++ None
++ }
++
++ pub fn suggest_modifier(
++ self,
++ _arch: InlineAsmArch,
++ _ty: InlineAsmType,
++ ) -> Option<ModifierInfo> {
++ None
++ }
++
++ pub fn default_modifier(self, _arch: InlineAsmArch) -> Option<ModifierInfo> {
++ None
++ }
++
++ pub fn supported_types(
++ self,
++ arch: InlineAsmArch,
++ ) -> &'static [(InlineAsmType, Option<Symbol>)] {
++ match (self, arch) {
++ (Self::reg, InlineAsmArch::Sw64) => types! { _: I8, I16, I32, I64, F32, F64; },
++ (Self::reg, _) => types! { _: I8, I16, I32, F32; },
++ (Self::freg, _) => types! { _: F32, F64; },
++ }
++ }
++}
++
++// The reserved registers are somewhat taken from <https://git.io/JUR1k#L150>.
++def_regs! {
++ Sw64 Sw64InlineAsmReg Sw64InlineAsmRegClass {
++ r1: reg = ["$1"],
++ r2: reg = ["$2"],
++ r3: reg = ["$3"],
++ r4: reg = ["$4"],
++ r5: reg = ["$5"],
++ r6: reg = ["$6"],
++ r7: reg = ["$7"],
++ r8: reg = ["$8"],
++ r9: reg = ["$9"],
++ r10: reg = ["$10"],
++ r11: reg = ["$11"],
++ r12: reg = ["$12"],
++ r13: reg = ["$13"],
++ r14: reg = ["$14"],
++ r16: reg = ["$16"],
++ r17: reg = ["$17"],
++ r18: reg = ["$18"],
++ r19: reg = ["$19"],
++ r20: reg = ["$20"],
++ r21: reg = ["$21"],
++ r22: reg = ["$22"],
++ r23: reg = ["$23"],
++ r24: reg = ["$24"],
++ r25: reg = ["$25"],
++ r27: reg = ["$27"],
++ r28: reg = ["$28"],
++ r31: reg = ["$31"],
++ f0: freg = ["$f0"],
++ f1: freg = ["$f1"],
++ f2: freg = ["$f2"],
++ f3: freg = ["$f3"],
++ f4: freg = ["$f4"],
++ f5: freg = ["$f5"],
++ f6: freg = ["$f6"],
++ f7: freg = ["$f7"],
++ f8: freg = ["$f8"],
++ f9: freg = ["$f9"],
++ f10: freg = ["$f10"],
++ f11: freg = ["$f11"],
++ f12: freg = ["$f12"],
++ f13: freg = ["$f13"],
++ f14: freg = ["$f14"],
++ f15: freg = ["$f15"],
++ f16: freg = ["$f16"],
++ f17: freg = ["$f17"],
++ f18: freg = ["$f18"],
++ f19: freg = ["$f19"],
++ f20: freg = ["$f20"],
++ f21: freg = ["$f21"],
++ f22: freg = ["$f22"],
++ f23: freg = ["$f23"],
++ f24: freg = ["$f24"],
++ f25: freg = ["$f25"],
++ f26: freg = ["$f26"],
++ f27: freg = ["$f27"],
++ f28: freg = ["$f28"],
++ f29: freg = ["$f29"],
++ f30: freg = ["$f30"],
++ f31: freg = ["$f31"],
++ #error = ["$15"] =>
++ "the frame pointer cannot be used as an operand for inline asm",
++ #error = ["$26"] =>
++ "the return address register cannot be used as an operand for inline asm",
++ #error = ["$29"] =>
++ "the global pointer cannot be used as an operand for inline asm",
++ #error = ["$30"] =>
++ "the stack pointer cannot be used as an operand for inline asm",
++ }
++}
++
++impl Sw64InlineAsmReg {
++ pub fn emit(
++ self,
++ out: &mut dyn fmt::Write,
++ _arch: InlineAsmArch,
++ _modifier: Option<char>,
++ ) -> fmt::Result {
++ out.write_str(self.name())
++ }
++}
+diff --git a/compiler/rustc_target/src/spec/mod.rs b/compiler/rustc_target/src/spec/mod.rs
+index d5f227a84a4..d0bed3bd0ef 100644
+--- a/compiler/rustc_target/src/spec/mod.rs
++++ b/compiler/rustc_target/src/spec/mod.rs
+@@ -1558,6 +1558,7 @@ fn $module() {
+ ("mipsisa64r6-unknown-linux-gnuabi64", mipsisa64r6_unknown_linux_gnuabi64),
+ ("mipsisa64r6el-unknown-linux-gnuabi64", mipsisa64r6el_unknown_linux_gnuabi64),
+ ("mipsel-unknown-linux-gnu", mipsel_unknown_linux_gnu),
++ ("sw_64-sunway-linux-gnu", sw_64_sunway_linux_gnu),
+ ("powerpc-unknown-linux-gnu", powerpc_unknown_linux_gnu),
+ ("powerpc-unknown-linux-gnuspe", powerpc_unknown_linux_gnuspe),
+ ("powerpc-unknown-linux-musl", powerpc_unknown_linux_musl),
+diff --git a/compiler/rustc_target/src/spec/targets/sw_64_sunway_linux_gnu.rs b/compiler/rustc_target/src/spec/targets/sw_64_sunway_linux_gnu.rs
+new file mode 100644
+index 00000000000..f5fe7b3eb96
+--- /dev/null
++++ b/compiler/rustc_target/src/spec/targets/sw_64_sunway_linux_gnu.rs
+@@ -0,0 +1,26 @@
++use crate::spec::{base, Target, TargetOptions};
++
++pub fn target() -> Target {
++ Target {
++ llvm_target: "sw_64-sunway-linux-gnu".into(),
++ metadata: crate::spec::TargetMetadata {
++ description: Some("SW64 Linux".into()),
++ tier: Some(3),
++ host_tools: Some(true),
++ std: Some(true),
++ },
++ pointer_width: 64,
++ data_layout: "e-m:e-p:64:64-i8:8:32-i16:16:32-i64:64-i128:128-n64-S128-v256:256".into(),
++ arch: "sw64".into(),
++ options: TargetOptions {
++ os: "linux".into(),
++ env: "gnu".into(),
++ vendor: "sunway".into(),
++ cpu: "sw_64".into(),
++ max_atomic_width: Some(64),
++ crt_static_default: false,
++
++ ..base::linux_gnu::opts()
++ },
++ }
++}
+diff --git a/compiler/rustc_target/src/target_features.rs b/compiler/rustc_target/src/target_features.rs
+index 8319cb880cc..30dd0e96ed6 100644
+--- a/compiler/rustc_target/src/target_features.rs
++++ b/compiler/rustc_target/src/target_features.rs
+@@ -497,6 +497,8 @@ pub fn is_stable(self) -> bool {
+ // tidy-alphabetical-end
+ ];
+
++const SW64_ALLOWED_FEATURES: &[(&str, Stability, ImpliedFeatures)] = &[];
++
+ /// When rustdoc is running, provide a list of all known features so that all their respective
+ /// primitives may be documented.
+ ///
+@@ -515,6 +517,7 @@ pub fn all_known_features() -> impl Iterator<Item = (&'static str, Stability)> {
+ .chain(CSKY_ALLOWED_FEATURES)
+ .chain(LOONGARCH_ALLOWED_FEATURES)
+ .chain(IBMZ_ALLOWED_FEATURES)
++ .chain(SW64_ALLOWED_FEATURES)
+ .cloned()
+ .map(|(f, s, _)| (f, s))
+ }
+@@ -536,6 +539,7 @@ pub fn supported_target_features(
+ "csky" => CSKY_ALLOWED_FEATURES,
+ "loongarch64" => LOONGARCH_ALLOWED_FEATURES,
+ "s390x" => IBMZ_ALLOWED_FEATURES,
++ "sw64" => SW64_ALLOWED_FEATURES,
+ _ => &[],
+ }
+ }
+diff --git a/config.example.toml b/config.example.toml
+index f1dc32234cc..e074cba6c4b 100644
+--- a/config.example.toml
++++ b/config.example.toml
+@@ -99,7 +99,7 @@
+ # the resulting rustc being unable to compile for the disabled architectures.
+ #
+ # To add support for new targets, see https://rustc-dev-guide.rust-lang.org/building/new-target.html.
+-#targets = "AArch64;ARM;BPF;Hexagon;LoongArch;MSP430;Mips;NVPTX;PowerPC;RISCV;Sparc;SystemZ;WebAssembly;X86"
++#targets = "AArch64;ARM;BPF;Hexagon;LoongArch;MSP430;Mips;Sw64;NVPTX;PowerPC;RISCV;Sparc;SystemZ;WebAssembly;X86"
+
+ # LLVM experimental targets to build support for. These targets are specified in
+ # the same format as above, but since these targets are experimental, they are
+diff --git a/library/alloc/Cargo.toml b/library/alloc/Cargo.toml
+index 4365bcc4ad0..2b41765f9c0 100644
+--- a/library/alloc/Cargo.toml
++++ b/library/alloc/Cargo.toml
+@@ -50,6 +50,7 @@ level = "warn"
+ check-cfg = [
+ 'cfg(bootstrap)',
+ 'cfg(no_global_oom_handling)',
++ 'cfg(target_arch, values("sw64"))',
+ 'cfg(no_rc)',
+ 'cfg(no_sync)',
+ ]
+diff --git a/library/core/Cargo.toml b/library/core/Cargo.toml
+index cace4582b48..54cc12e5aa1 100644
+--- a/library/core/Cargo.toml
++++ b/library/core/Cargo.toml
+@@ -43,6 +43,7 @@ check-cfg = [
+ 'cfg(bootstrap)',
+ 'cfg(no_fp_fmt_parse)',
+ 'cfg(stdarch_intel_sde)',
++ 'cfg(target_arch, values("sw64"))',
+ # core use #[path] imports to portable-simd `core_simd` crate
+ # and to stdarch `core_arch` crate which messes-up with Cargo list
+ # of declared features, we therefor expect any feature cfg
+diff --git a/library/core/src/ffi/va_list.rs b/library/core/src/ffi/va_list.rs
+index 3a224e4d8fe..c4cd845c29d 100644
+--- a/library/core/src/ffi/va_list.rs
++++ b/library/core/src/ffi/va_list.rs
+@@ -13,6 +13,7 @@
+ #[cfg(any(
+ all(
+ not(target_arch = "aarch64"),
++ not(target_arch = "sw64"),
+ not(target_arch = "powerpc"),
+ not(target_arch = "s390x"),
+ not(target_arch = "x86_64")
+@@ -36,6 +37,7 @@ pub struct VaListImpl<'f> {
+ all(
+ not(target_arch = "aarch64"),
+ not(target_arch = "powerpc"),
++ not(target_arch = "sw64"),
+ not(target_arch = "s390x"),
+ not(target_arch = "x86_64")
+ ),
+@@ -73,6 +75,17 @@ pub struct VaListImpl<'f> {
+ _marker: PhantomData<&'f mut &'f c_void>,
+ }
+
++/// SW64 ABI implementation of a `va_list`.
++#[cfg(target_arch = "sw64")]
++#[derive(Debug)]
++#[cfg_attr(not(doc), repr(C))] // work around https://github.com/rust-lang/rust/issues/66401
++#[lang = "va_list"]
++pub struct VaListImpl<'f> {
++ stack: *mut c_void,
++ offs: i32,
++ _marker: PhantomData<&'f mut &'f c_void>,
++}
++
+ /// PowerPC ABI implementation of a `va_list`.
+ #[cfg(all(target_arch = "powerpc", not(target_os = "uefi"), not(windows)))]
+ #[cfg_attr(not(doc), repr(C))] // work around https://github.com/rust-lang/rust/issues/66401
+diff --git a/library/core/src/sync/atomic.rs b/library/core/src/sync/atomic.rs
+index 495d9191a9f..1614c906f4a 100644
+--- a/library/core/src/sync/atomic.rs
++++ b/library/core/src/sync/atomic.rs
+@@ -236,7 +236,8 @@
+ // atomic-and instructions but don't natively support byte-sized atomics.
+ #[cfg(target_has_atomic = "8")]
+ const EMULATE_ATOMIC_BOOL: bool =
+- cfg!(any(target_arch = "riscv32", target_arch = "riscv64", target_arch = "loongarch64"));
++ cfg!(any(target_arch = "riscv32", target_arch = "riscv64", target_arch = "loongarch64",
++ target_arch = "sw64"));
+
+ /// A boolean type which can be safely shared between threads.
+ ///
+diff --git a/library/std/Cargo.toml b/library/std/Cargo.toml
+index 5f0144922ca..5efdf6c2a1f 100644
+--- a/library/std/Cargo.toml
++++ b/library/std/Cargo.toml
+@@ -142,6 +142,7 @@ level = "warn"
+ check-cfg = [
+ 'cfg(bootstrap)',
+ 'cfg(target_arch, values("xtensa"))',
++ 'cfg(target_arch, values("sw64"))',
+ # std use #[path] imports to portable-simd `std_float` crate
+ # and to the `backtrace` crate which messes-up with Cargo list
+ # of declared features, we therefor expect any feature cfg
+diff --git a/library/std/src/env.rs b/library/std/src/env.rs
+index e06a851658c..686e2d5d729 100644
+--- a/library/std/src/env.rs
++++ b/library/std/src/env.rs
+@@ -957,6 +957,7 @@ pub mod consts {
+ /// - csky
+ /// - mips
+ /// - mips64
++ /// - sw64
+ /// - powerpc
+ /// - powerpc64
+ /// - riscv64
+diff --git a/library/std/src/os/linux/raw.rs b/library/std/src/os/linux/raw.rs
+index d53674d3c5f..ff0a5b4c108 100644
+--- a/library/std/src/os/linux/raw.rs
++++ b/library/std/src/os/linux/raw.rs
+@@ -233,6 +233,7 @@ pub struct stat {
+ #[cfg(any(
+ target_arch = "loongarch64",
+ target_arch = "mips64",
++ target_arch = "sw64",
+ target_arch = "mips64r6",
+ target_arch = "s390x",
+ target_arch = "sparc64",
+diff --git a/library/std/src/sync/mpmc/utils.rs b/library/std/src/sync/mpmc/utils.rs
+index 0cbc61160f7..24433820ba7 100644
+--- a/library/std/src/sync/mpmc/utils.rs
++++ b/library/std/src/sync/mpmc/utils.rs
+@@ -20,7 +20,8 @@
+ // Sources:
+ // - https://github.com/golang/go/blob/3dd58676054223962cd915bb0934d1f9f489d4d2/src/internal/cpu/cpu_ppc64x.go#L9
+ #[cfg_attr(
+- any(target_arch = "x86_64", target_arch = "aarch64", target_arch = "powerpc64",),
++ any(target_arch = "x86_64", target_arch = "aarch64", target_arch = "powerpc64",
++ target_arch = "sw64",),
+ repr(align(128))
+ )]
+ // arm, mips, mips64, and riscv64 have 32-byte cache line size.
+@@ -63,6 +64,7 @@
+ target_arch = "mips",
+ target_arch = "mips32r6",
+ target_arch = "mips64",
++ target_arch = "sw64",
+ target_arch = "mips64r6",
+ target_arch = "riscv64",
+ target_arch = "s390x",
+diff --git a/library/std/src/sys/alloc/mod.rs b/library/std/src/sys/alloc/mod.rs
+index 2c0b533a570..8f2e4d51005 100644
+--- a/library/std/src/sys/alloc/mod.rs
++++ b/library/std/src/sys/alloc/mod.rs
+@@ -34,6 +34,7 @@
+ target_arch = "arm64ec",
+ target_arch = "loongarch64",
+ target_arch = "mips64",
++ target_arch = "sw64",
+ target_arch = "mips64r6",
+ target_arch = "s390x",
+ target_arch = "sparc64",
+diff --git a/library/std/src/sys/pal/unix/process/process_unix/tests.rs b/library/std/src/sys/pal/unix/process/process_unix/tests.rs
+index f4d6ac6b4e3..28877a50f1a 100644
+--- a/library/std/src/sys/pal/unix/process/process_unix/tests.rs
++++ b/library/std/src/sys/pal/unix/process/process_unix/tests.rs
+@@ -27,14 +27,15 @@ fn exitstatus_display_tests() {
+ #[cfg(any(target_arch = "mips", target_arch = "mips64"))]
+ t(0x0137f, "stopped (not terminated) by signal: 19 (SIGPWR)");
+
+- #[cfg(any(target_arch = "sparc", target_arch = "sparc64"))]
++ #[cfg(any(target_arch = "sparc", target_arch = "sparc64", target_arch = "sw64"))]
+ t(0x0137f, "stopped (not terminated) by signal: 19 (SIGCONT)");
+
+ #[cfg(not(any(
+ target_arch = "mips",
+ target_arch = "mips64",
+ target_arch = "sparc",
+- target_arch = "sparc64"
++ target_arch = "sparc64",
++ target_arch = "sw64"
+ )))]
+ t(0x0137f, "stopped (not terminated) by signal: 19 (SIGSTOP)");
+
+diff --git a/library/std/src/sys/personality/gcc.rs b/library/std/src/sys/personality/gcc.rs
+index f6b1844e153..eda712295e6 100644
+--- a/library/std/src/sys/personality/gcc.rs
++++ b/library/std/src/sys/personality/gcc.rs
+@@ -89,6 +89,9 @@
+ #[cfg(target_arch = "loongarch64")]
+ const UNWIND_DATA_REG: (i32, i32) = (4, 5); // a0, a1
+
++#[cfg(target_arch = "sw64")]
++const UNWIND_DATA_REG: (i32, i32) = (16, 17); // R16, R17
++
+ // The following code is based on GCC's C and C++ personality routines. For reference, see:
+ // https://github.com/gcc-mirror/gcc/blob/master/libstdc++-v3/libsupc++/eh_personality.cc
+ // https://github.com/gcc-mirror/gcc/blob/trunk/libgcc/unwind-c.c
+diff --git a/library/unwind/Cargo.toml b/library/unwind/Cargo.toml
+index bbd1db8dfa5..149278b3304 100644
+--- a/library/unwind/Cargo.toml
++++ b/library/unwind/Cargo.toml
+@@ -34,3 +34,10 @@ llvm-libunwind = []
+ # If crt-static is enabled, static link to `libunwind.a` provided by system
+ # If crt-static is disabled, dynamic link to `libunwind.so` provided by system
+ system-llvm-libunwind = []
++
++
++[lints.rust.unexpected_cfgs]
++level = "warn"
++check-cfg = [
++ 'cfg(target_arch, values("sw64"))',
++]
+diff --git a/library/unwind/src/libunwind.rs b/library/unwind/src/libunwind.rs
+index e5e28f32e4d..5eb859890a1 100644
+--- a/library/unwind/src/libunwind.rs
++++ b/library/unwind/src/libunwind.rs
+@@ -81,6 +81,9 @@ pub enum _Unwind_Reason_Code {
+ #[cfg(target_arch = "loongarch64")]
+ pub const unwinder_private_data_size: usize = 2;
+
++#[cfg(target_arch = "sw64")]
++pub const unwinder_private_data_size: usize = 2;
++
+ #[repr(C)]
+ pub struct _Unwind_Exception {
+ pub exception_class: _Unwind_Exception_Class,
+diff --git a/src/bootstrap/bootstrap.py b/src/bootstrap/bootstrap.py
+index 71f69e03a9f..8c5fcfe5365 100644
+--- a/src/bootstrap/bootstrap.py
++++ b/src/bootstrap/bootstrap.py
+@@ -406,6 +406,8 @@ def default_build_triple(verbose):
+ kernel += 'abi64'
+ elif cputype == 'sparc' or cputype == 'sparcv9' or cputype == 'sparc64':
+ pass
++ elif cputype == 'sw_64':
++ pass
+ else:
+ err = "unknown cpu type: {}".format(cputype)
+ sys.exit(err)
+diff --git a/src/bootstrap/src/core/build_steps/llvm.rs b/src/bootstrap/src/core/build_steps/llvm.rs
+index e1eea31b3bb..c75bf2cd9c9 100644
+--- a/src/bootstrap/src/core/build_steps/llvm.rs
++++ b/src/bootstrap/src/core/build_steps/llvm.rs
+@@ -318,7 +318,7 @@ fn run(self, builder: &Builder<'_>) -> LlvmResult {
+ Some(s) => s,
+ None => {
+ "AArch64;ARM;BPF;Hexagon;LoongArch;MSP430;Mips;NVPTX;PowerPC;RISCV;\
+- Sparc;SystemZ;WebAssembly;X86"
++ Sparc;SystemZ;WebAssembly;X86;Sw64"
+ }
+ };
+
+diff --git a/src/librustdoc/clean/cfg.rs b/src/librustdoc/clean/cfg.rs
+index fb9754c7ffc..77bad22379f 100644
+--- a/src/librustdoc/clean/cfg.rs
++++ b/src/librustdoc/clean/cfg.rs
+@@ -521,6 +521,7 @@ fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result {
+ "mips" => "MIPS",
+ "mips32r6" => "MIPS Release 6",
+ "mips64" => "MIPS-64",
++ "sw64" => "SW64",
+ "mips64r6" => "MIPS-64 Release 6",
+ "msp430" => "MSP430",
+ "powerpc" => "PowerPC",
+diff --git a/src/tools/build-manifest/src/main.rs b/src/tools/build-manifest/src/main.rs
+index 92b21f7dbaa..01f47860e9e 100644
+--- a/src/tools/build-manifest/src/main.rs
++++ b/src/tools/build-manifest/src/main.rs
+@@ -34,6 +34,7 @@
+ "mipsisa32r6el-unknown-linux-gnu",
+ "mipsisa64r6-unknown-linux-gnuabi64",
+ "mipsisa64r6el-unknown-linux-gnuabi64",
++ "sw_64-sunway-linux-gnu",
+ "powerpc-unknown-linux-gnu",
+ "powerpc64-unknown-linux-gnu",
+ "powerpc64le-unknown-linux-gnu",
+@@ -126,6 +127,7 @@
+ "mipsisa64r6el-unknown-linux-gnuabi64",
+ "mipsel-unknown-linux-gnu",
+ "mipsel-unknown-linux-musl",
++ "sw_64-sunway-linux-gnu",
+ "nvptx64-nvidia-cuda",
+ "powerpc-unknown-linux-gnu",
+ "powerpc64-unknown-linux-gnu",
+diff --git a/src/tools/compiletest/src/command-list.rs b/src/tools/compiletest/src/command-list.rs
+index a559d6f81a2..07f98350b9d 100644
+--- a/src/tools/compiletest/src/command-list.rs
++++ b/src/tools/compiletest/src/command-list.rs
+@@ -102,6 +102,7 @@
+ "ignore-stable",
+ "ignore-stage1",
+ "ignore-stage2",
++ "ignore-sw64",
+ "ignore-test",
+ "ignore-thumb",
+ "ignore-thumbv8m.base-none-eabi",
+diff --git a/src/tools/tidy/src/target_specific_tests.rs b/src/tools/tidy/src/target_specific_tests.rs
+index c1032b19f97..3109697270c 100644
+--- a/src/tools/tidy/src/target_specific_tests.rs
++++ b/src/tools/tidy/src/target_specific_tests.rs
+@@ -25,6 +25,7 @@
+ "powerpc",
+ "riscv",
+ "sparc",
++ "sw64",
+ "systemz",
+ "webassembly",
+ "x86",
+diff --git a/tests/ui/abi/compatibility.rs b/tests/ui/abi/compatibility.rs
+index d37e793d989..23a948bbeb6 100644
+--- a/tests/ui/abi/compatibility.rs
++++ b/tests/ui/abi/compatibility.rs
+@@ -50,6 +50,9 @@
+ //@ revisions: bpf
+ //@[bpf] compile-flags: --target bpfeb-unknown-none
+ //@[bpf] needs-llvm-components: bpf
++//@ revisions: sw64
++//@[sw64] compile-flags: --target sw_64-sunway-linux-gnu
++//@[sw64] needs-llvm-components: sw64
+ //@ revisions: m68k
+ //@[m68k] compile-flags: --target m68k-unknown-linux-gnu
+ //@[m68k] needs-llvm-components: m68k
+@@ -67,6 +70,7 @@
+ // Hence there are `cfg` throughout this test to disable parts of it on those targets.
+ // sparc64: https://github.com/rust-lang/rust/issues/115336
+ // mips64: https://github.com/rust-lang/rust/issues/115404
++// sw64: same as mips64
+
+ #[cfg(host)]
+ use std::{
+@@ -314,7 +318,7 @@ mod $name {
+ test_transparent!(unit, ());
+ test_transparent!(enum_, Option<i32>);
+ test_transparent!(enum_niched, Option<&'static i32>);
+-#[cfg(not(any(target_arch = "mips64", target_arch = "sparc64")))]
++#[cfg(not(any(target_arch = "mips64", target_arch = "sparc64", target_arch = "sw64")))]
+ mod tuples {
+ use super::*;
+ // mixing in some floats since they often get special treatment
+@@ -328,7 +332,7 @@ mod tuples {
+ test_transparent!(tuple, (i32, f32, i64, f64));
+ }
+ // Some targets have special rules for arrays.
+-#[cfg(not(any(target_arch = "mips64", target_arch = "sparc64")))]
++#[cfg(not(any(target_arch = "mips64", target_arch = "sparc64", target_arch = "sw64")))]
+ mod arrays {
+ use super::*;
+ test_transparent!(empty_array, [u32; 0]);
+@@ -350,7 +354,7 @@ mod $name {
+ };
+ }
+
+-#[cfg(not(any(target_arch = "mips64", target_arch = "sparc64")))]
++#[cfg(not(any(target_arch = "mips64", target_arch = "sparc64", target_arch = "sw64")))]
+ mod unsized_ {
+ use super::*;
+ test_transparent_unsized!(str_, str);
+diff --git a/tests/ui/cfg/conditional-compile-arch.rs b/tests/ui/cfg/conditional-compile-arch.rs
+index 678b32c6a4e..644e074c493 100644
+--- a/tests/ui/cfg/conditional-compile-arch.rs
++++ b/tests/ui/cfg/conditional-compile-arch.rs
+@@ -39,3 +39,6 @@ pub fn main() { }
+
+ #[cfg(target_arch = "loongarch64")]
+ pub fn main() { }
++
++#[cfg(target_arch = "sw64")]
++pub fn main() { }
+diff --git a/tests/ui/check-cfg/well-known-values.stderr b/tests/ui/check-cfg/well-known-values.stderr
+index 0530e1c34c9..4e78b2d7db3 100644
+--- a/tests/ui/check-cfg/well-known-values.stderr
++++ b/tests/ui/check-cfg/well-known-values.stderr
+@@ -138,7 +138,7 @@ warning: unexpected `cfg` condition value: `_UNEXPECTED_VALUE`
+ LL | target_arch = "_UNEXPECTED_VALUE",
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ |
+- = note: expected values for `target_arch` are: `aarch64`, `arm`, `arm64ec`, `avr`, `bpf`, `csky`, `hexagon`, `loongarch64`, `m68k`, `mips`, `mips32r6`, `mips64`, `mips64r6`, `msp430`, `nvptx64`, `powerpc`, `powerpc64`, `riscv32`, `riscv64`, `s390x`, `sparc`, `sparc64`, `wasm32`, `wasm64`, `x86`, `x86_64`, and `xtensa`
++ = note: expected values for `target_arch` are: `aarch64`, `arm`, `arm64ec`, `avr`, `bpf`, `csky`, `hexagon`, `loongarch64`, `m68k`, `mips`, `mips32r6`, `mips64`, `mips64r6`, `msp430`, `nvptx64`, `powerpc`, `powerpc64`, `riscv32`, `riscv64`, `s390x`, `sparc`, `sparc64`, `sw64`, `wasm32`, `wasm64`, `x86`, `x86_64`, and `xtensa`
+ = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg.html> for more information about checking conditional configuration
+
+ warning: unexpected `cfg` condition value: `_UNEXPECTED_VALUE`
+@@ -239,7 +239,7 @@ warning: unexpected `cfg` condition value: `_UNEXPECTED_VALUE`
+ LL | target_vendor = "_UNEXPECTED_VALUE",
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ |
+- = note: expected values for `target_vendor` are: `apple`, `espressif`, `fortanix`, `ibm`, `kmc`, `nintendo`, `nvidia`, `pc`, `risc0`, `sony`, `sun`, `unikraft`, `unknown`, `uwp`, `win7`, and `wrs`
++ = note: expected values for `target_vendor` are: `apple`, `espressif`, `fortanix`, `ibm`, `kmc`, `nintendo`, `nvidia`, `pc`, `risc0`, `sony`, `sun`, `sunway`, `unikraft`, `unknown`, `uwp`, `win7`, and `wrs`
+ = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg.html> for more information about checking conditional configuration
+
+ warning: unexpected `cfg` condition value: `_UNEXPECTED_VALUE`
+diff --git a/tests/ui/target-feature/gate.rs b/tests/ui/target-feature/gate.rs
+index 5c4fb847932..dcd519268f3 100644
+--- a/tests/ui/target-feature/gate.rs
++++ b/tests/ui/target-feature/gate.rs
+@@ -22,6 +22,7 @@
+ // gate-test-loongarch_target_feature
+ // gate-test-lahfsahf_target_feature
+ // gate-test-prfchw_target_feature
++// gate-test-sw64_target_feature
+ // gate-test-s390x_target_feature
+
+ #[target_feature(enable = "avx512bw")]
+diff --git a/vendor/cc-1.1.6/src/lib.rs b/vendor/cc-1.1.6/src/lib.rs
+index 218b9e045f3..8014ce25560 100644
+--- a/vendor/cc-1.1.6/src/lib.rs
++++ b/vendor/cc-1.1.6/src/lib.rs
+@@ -3463,6 +3463,7 @@ fn prefix_for_target(&self, target: &str) -> Option<Cow<'static, str>> {
+ "i686-unknown-linux-musl" => Some("musl"),
+ "i686-unknown-netbsd" => Some("i486--netbsdelf"),
+ "loongarch64-unknown-linux-gnu" => Some("loongarch64-linux-gnu"),
++ "sw_64-sunway-linux-gnu" => Some("sw_64-linux-gnu"),
+ "mips-unknown-linux-gnu" => Some("mips-linux-gnu"),
+ "mips-unknown-linux-musl" => Some("mips-linux-musl"),
+ "mipsel-unknown-linux-gnu" => Some("mipsel-linux-gnu"),
+diff --git a/vendor/compiler_builtins-0.1.123/src/float/conv.rs b/vendor/compiler_builtins-0.1.123/src/float/conv.rs
+index d275f982bb4..10c975f7c8d 100644
+--- a/vendor/compiler_builtins-0.1.123/src/float/conv.rs
++++ b/vendor/compiler_builtins-0.1.123/src/float/conv.rs
+@@ -99,11 +99,13 @@ pub extern "C" fn __floatundidf(i: u64) -> f64 {
+ }
+
+ #[cfg_attr(target_os = "uefi", unadjusted_on_win64)]
++ #[unadjusted_on_sw64]
+ pub extern "C" fn __floatuntisf(i: u128) -> f32 {
+ f32::from_bits(int_to_float::u128_to_f32_bits(i))
+ }
+
+ #[cfg_attr(target_os = "uefi", unadjusted_on_win64)]
++ #[unadjusted_on_sw64]
+ pub extern "C" fn __floatuntidf(i: u128) -> f64 {
+ f64::from_bits(int_to_float::u128_to_f64_bits(i))
+ }
+@@ -136,12 +138,14 @@ pub extern "C" fn __floatdidf(i: i64) -> f64 {
+ }
+
+ #[cfg_attr(target_os = "uefi", unadjusted_on_win64)]
++ #[unadjusted_on_sw64]
+ pub extern "C" fn __floattisf(i: i128) -> f32 {
+ let sign_bit = ((i >> 127) as u32) << 31;
+ f32::from_bits(int_to_float::u128_to_f32_bits(i.unsigned_abs()) | sign_bit)
+ }
+
+ #[cfg_attr(target_os = "uefi", unadjusted_on_win64)]
++ #[unadjusted_on_sw64]
+ pub extern "C" fn __floattidf(i: i128) -> f64 {
+ let sign_bit = ((i >> 127) as u64) << 63;
+ f64::from_bits(int_to_float::u128_to_f64_bits(i.unsigned_abs()) | sign_bit)
+@@ -243,6 +247,7 @@ pub extern "C" fn __fixunssfdi(f: f32) -> u64 {
+ }
+
+ #[win64_128bit_abi_hack]
++ #[unadjusted_on_sw64]
+ pub extern "C" fn __fixunssfti(f: f32) -> u128 {
+ float_to_unsigned_int(f)
+ }
+@@ -258,6 +263,7 @@ pub extern "C" fn __fixunsdfdi(f: f64) -> u64 {
+ }
+
+ #[win64_128bit_abi_hack]
++ #[unadjusted_on_sw64]
+ pub extern "C" fn __fixunsdfti(f: f64) -> u128 {
+ float_to_unsigned_int(f)
+ }
+@@ -294,6 +300,7 @@ pub extern "C" fn __fixsfdi(f: f32) -> i64 {
+ }
+
+ #[win64_128bit_abi_hack]
++ #[unadjusted_on_sw64]
+ pub extern "C" fn __fixsfti(f: f32) -> i128 {
+ float_to_signed_int(f)
+ }
+@@ -309,6 +316,7 @@ pub extern "C" fn __fixdfdi(f: f64) -> i64 {
+ }
+
+ #[win64_128bit_abi_hack]
++ #[unadjusted_on_sw64]
+ pub extern "C" fn __fixdfti(f: f64) -> i128 {
+ float_to_signed_int(f)
+ }
+diff --git a/vendor/compiler_builtins-0.1.123/src/int/mul.rs b/vendor/compiler_builtins-0.1.123/src/int/mul.rs
+index e0093a725c2..988fb8e3ef1 100644
+--- a/vendor/compiler_builtins-0.1.123/src/int/mul.rs
++++ b/vendor/compiler_builtins-0.1.123/src/int/mul.rs
+@@ -122,6 +122,7 @@ pub extern "C" fn __mulodi4(a: i64, b: i64, oflow: &mut i32) -> i64 {
+ }
+
+ #[unadjusted_on_win64]
++ #[unadjusted_on_sw64]
+ pub extern "C" fn __muloti4(a: i128, b: i128, oflow: &mut i32) -> i128 {
+ let (mul, o) = i128_overflowing_mul(a, b);
+ *oflow = o as i32;
+diff --git a/vendor/compiler_builtins-0.1.123/src/int/sdiv.rs b/vendor/compiler_builtins-0.1.123/src/int/sdiv.rs
+index 9d316c76eca..1558cbc0660 100644
+--- a/vendor/compiler_builtins-0.1.123/src/int/sdiv.rs
++++ b/vendor/compiler_builtins-0.1.123/src/int/sdiv.rs
+@@ -165,5 +165,5 @@ pub extern "C" fn __divsi3(a: i32, b: i32) -> i32 {
+ i128,
+ maybe_use_optimized_c_shim
+ );
+-sdiv!(__udivti3, __divti3, u128, i128, win64_128bit_abi_hack);
+-smod!(__umodti3, __modti3, u128, i128, win64_128bit_abi_hack);
++sdiv!(__udivti3, __divti3, u128, i128, win64_128bit_abi_hack, sw64_128bit_abi_hack);
++smod!(__umodti3, __modti3, u128, i128, win64_128bit_abi_hack, sw64_128bit_abi_hack);
+diff --git a/vendor/compiler_builtins-0.1.123/src/int/udiv.rs b/vendor/compiler_builtins-0.1.123/src/int/udiv.rs
+index c891eede4b1..8636a8868e8 100644
+--- a/vendor/compiler_builtins-0.1.123/src/int/udiv.rs
++++ b/vendor/compiler_builtins-0.1.123/src/int/udiv.rs
+@@ -59,6 +59,7 @@ pub extern "C" fn __udivmoddi4(n: u64, d: u64, rem: Option<&mut u64>) -> u64 {
+
+ #[avr_skip]
+ #[win64_128bit_abi_hack]
++ #[sw64_128bit_abi_hack]
+ /// Returns `n / d`
+ pub extern "C" fn __udivti3(n: u128, d: u128) -> u128 {
+ #[cfg(not(any(target_arch = "sparc", target_arch = "sparc64")))] {
+@@ -71,6 +72,7 @@ pub extern "C" fn __udivti3(n: u128, d: u128) -> u128 {
+
+ #[avr_skip]
+ #[win64_128bit_abi_hack]
++ #[sw64_128bit_abi_hack]
+ /// Returns `n % d`
+ pub extern "C" fn __umodti3(n: u128, d: u128) -> u128 {
+ #[cfg(not(any(target_arch = "sparc", target_arch = "sparc64")))] {
+diff --git a/vendor/compiler_builtins-0.1.123/src/macros.rs b/vendor/compiler_builtins-0.1.123/src/macros.rs
+index f51e49e9876..f84abcfbba2 100644
+--- a/vendor/compiler_builtins-0.1.123/src/macros.rs
++++ b/vendor/compiler_builtins-0.1.123/src/macros.rs
+@@ -201,6 +201,79 @@ pub extern "aapcs" fn $name( $($argname: $ty),* ) $(-> $ret)? {
+ intrinsics!($($rest)*);
+ );
+
++ // Some intrinsics on sw64 which return a 128-bit integer have an.. unusual
++ // calling convention. That's managed here with this "abi hack" which alters
++ // the generated symbol's ABI.
++ //
++ // This will still define a function in this crate with the given name and
++ // signature, but the actual symbol for the intrinsic may have a slightly
++ // different ABI on sw64.
++ (
++ #[sw64_128bit_abi_hack]
++ $(#[$($attr:tt)*])*
++ pub extern $abi:tt fn $name:ident( $($argname:ident: $ty:ty),* ) $(-> $ret:ty)? {
++ $($body:tt)*
++ }
++
++ $($rest:tt)*
++ ) => (
++ #[cfg(target_arch = "sw64")]
++ $(#[$($attr)*])*
++ pub extern $abi fn $name( $($argname: $ty),* ) $(-> $ret)? {
++ $($body)*
++ }
++
++ #[cfg(target_arch = "sw64")]
++ pub mod $name {
++ pub extern $abi fn $name( $($argname: $ty),* )
++ -> $crate::macros::sw64_128bit_abi_hack::U64x2
++ {
++ let e: $($ret)? = super::$name($($argname),*);
++ $crate::macros::sw64_128bit_abi_hack::U64x2::from(e)
++ }
++ }
++
++ #[cfg(not(target_arch = "sw64"))]
++ intrinsics! {
++ $(#[$($attr)*])*
++ pub extern $abi fn $name( $($argname: $ty),* ) $(-> $ret)? {
++ $($body)*
++ }
++ }
++
++ intrinsics!($($rest)*);
++ );
++
++ // Like aapcs above we recognize an attribute for the "unadjusted" abi on
++ // sw64 for some methods.
++ (
++ #[unadjusted_on_sw64]
++ $(#[$($attr:tt)*])*
++ pub extern $abi:tt fn $name:ident( $($argname:ident: $ty:ty),* ) $(-> $ret:ty)? {
++ $($body:tt)*
++ }
++
++ $($rest:tt)*
++ ) => (
++ #[cfg(target_arch = "sw64")]
++ intrinsics! {
++ $(#[$($attr)*])*
++ pub extern "unadjusted" fn $name( $($argname: $ty),* ) $(-> $ret)? {
++ $($body)*
++ }
++ }
++
++ #[cfg(not(target_arch = "sw64"))]
++ intrinsics! {
++ $(#[$($attr)*])*
++ pub extern $abi fn $name( $($argname: $ty),* ) $(-> $ret)? {
++ $($body)*
++ }
++ }
++
++ intrinsics!($($rest)*);
++ );
++
+ // Like aapcs above we recognize an attribute for the "unadjusted" abi on
+ // win64 for some methods.
+ (
+@@ -599,3 +672,25 @@ fn from(i: u128) -> U64x2 {
+ }
+ }
+ }
++
++// Hack for LLVM expectations for ABI on sw64. This is used by the
++// `#[sw64_128bit_abi_hack]` attribute recognized above
++#[cfg(target_arch = "sw64")]
++pub mod sw64_128bit_abi_hack {
++ pub struct U64x2([u64; 2]);
++
++ impl From<i128> for U64x2 {
++ fn from(i: i128) -> U64x2 {
++ use crate::int::DInt;
++ let j = i as u128;
++ U64x2([j.lo(), j.hi()])
++ }
++ }
++
++ impl From<u128> for U64x2 {
++ fn from(i: u128) -> U64x2 {
++ use crate::int::DInt;
++ U64x2([i.lo(), i.hi()])
++ }
++ }
++}
+diff --git a/vendor/libc-0.2.155/src/unix/linux_like/linux/align.rs b/vendor/libc-0.2.155/src/unix/linux_like/linux/align.rs
+index 1036e23dc8f..41d5c32f5bf 100644
+--- a/vendor/libc-0.2.155/src/unix/linux_like/linux/align.rs
++++ b/vendor/libc-0.2.155/src/unix/linux_like/linux/align.rs
+@@ -10,6 +10,7 @@ macro_rules! expand_align {
+ target_arch = "sparc64",
+ target_arch = "aarch64",
+ target_arch = "riscv64",
++ target_arch = "sw64",
+ target_arch = "riscv32",
+ target_arch = "loongarch64"),
+ repr(align(4)))]
+@@ -22,6 +23,7 @@ macro_rules! expand_align {
+ target_arch = "sparc64",
+ target_arch = "aarch64",
+ target_arch = "riscv64",
++ target_arch = "sw64",
+ target_arch = "riscv32",
+ target_arch = "loongarch64")),
+ repr(align(8)))]
+diff --git a/vendor/libc-0.2.155/src/unix/linux_like/linux/arch/mod.rs b/vendor/libc-0.2.155/src/unix/linux_like/linux/arch/mod.rs
+index 7f6ddc5a764..db55a9202dd 100644
+--- a/vendor/libc-0.2.155/src/unix/linux_like/linux/arch/mod.rs
++++ b/vendor/libc-0.2.155/src/unix/linux_like/linux/arch/mod.rs
+@@ -11,6 +11,9 @@
+ } else if #[cfg(any(target_arch = "sparc", target_arch = "sparc64"))] {
+ mod sparc;
+ pub use self::sparc::*;
++ } else if #[cfg(target_arch = "sw64")] {
++ mod sw64;
++ pub use self::sw64::*;
+ } else {
+ mod generic;
+ pub use self::generic::*;
+diff --git a/vendor/libc-0.2.155/src/unix/linux_like/linux/arch/sw64/mod.rs b/vendor/libc-0.2.155/src/unix/linux_like/linux/arch/sw64/mod.rs
+new file mode 100644
+index 00000000000..74da8a98fdd
+--- /dev/null
++++ b/vendor/libc-0.2.155/src/unix/linux_like/linux/arch/sw64/mod.rs
+@@ -0,0 +1,120 @@
++//s! {
++// pub struct ktermios {
++// pub c_iflag: ::tcflag_t,
++// pub c_oflag: ::tcflag_t,
++// pub c_cflag: ::tcflag_t,
++// pub c_lflag: ::tcflag_t,
++// pub c_cc: [::cc_t; 19],
++// pub c_line: ::cc_t,
++// pub c_ispeed: ::speed_t,
++// pub c_ospeed: ::speed_t,
++// }
++//}
++//pub type termios2 = termios;
++pub const SOL_SOCKET: ::c_int = 0xffff;
++pub const SO_REUSEADDR: ::c_int = 0x0004;
++pub const SO_TYPE: ::c_int = 0x1008;
++pub const SO_ERROR: ::c_int = 0x1007;
++pub const SO_DONTROUTE: ::c_int = 0x0010;
++pub const SO_BROADCAST: ::c_int = 0x0020;
++pub const SO_SNDBUF: ::c_int = 0x1001;
++pub const SO_RCVBUF: ::c_int = 0x1002;
++pub const SO_SNDBUFFORCE: ::c_int = 0x100a;
++pub const SO_RCVBUFFORCE: ::c_int = 0x100b;
++pub const SO_KEEPALIVE: ::c_int = 0x0008;
++pub const SO_OOBINLINE: ::c_int = 0x0100;
++pub const SO_NO_CHECK: ::c_int = 11;
++pub const SO_PRIORITY: ::c_int = 12;
++
++pub const SO_LINGER: ::c_int = 0x0080;
++pub const SO_BSDCOMPAT: ::c_int = 14;
++pub const SO_REUSEPORT: ::c_int = 0x0200;
++pub const SO_PASSCRED: ::c_int = 17;
++pub const SO_PEERCRED: ::c_int = 18;
++pub const SO_RCVLOWAT: ::c_int = 0x1010;
++pub const SO_SNDLOWAT: ::c_int = 0x1011;
++pub const SO_RCVTIMEO: ::c_int = 0x1012;
++pub const SO_SNDTIMEO: ::c_int = 0x1013;
++
++pub const SO_SECURITY_AUTHENTICATION: ::c_int = 19;
++pub const SO_SECURITY_ENCRYPTION_TRANSPORT: ::c_int = 20;
++pub const SO_SECURITY_ENCRYPTION_NETWORK: ::c_int = 21;
++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_ACCEPTCONN: ::c_int = 0x1014;
++
++pub const SO_PEERSEC: ::c_int = 30;
++pub const SO_PASSSEC: ::c_int = 34;
++pub const SO_TIMESTAMPNS: ::c_int = 35;
++pub const SCM_TIMESTAMPNS: ::c_int = SO_TIMESTAMPNS;
++pub const SO_MARK: ::c_int = 36;
++pub const SO_PROTOCOL: ::c_int = 0x1028;
++pub const SO_DOMAIN: ::c_int = 0x1029;
++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 SCM_TIMESTAMPING: ::c_int = SO_TIMESTAMPING;
++pub const SO_TIMESTAMPING: ::c_int = 37;
++pub const RLIM_INFINITY: ::rlim_t = !0;
++
++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_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 = 16;
++pub const RLIM_NLIMITS: ::__rlimit_resource_t = RLIMIT_NLIMITS;
++
++pub const BLKIOMIN: ::Ioctl = 0x20001278;
++pub const BLKIOOPT: ::Ioctl = 0x20001279;
++pub const BLKSSZGET: ::Ioctl = 0x20001268;
++pub const BLKPBSZGET: ::Ioctl = 0x2000127B;
++pub const FIONCLEX: ::Ioctl = 0x20006602;
++//pub const IBSHIFT: ::tcflag_t = 16;
++
++pub const TIOCM_LE: ::c_int = 0x1;
++pub const TIOCM_DTR: ::c_int = 0x002;
++pub const TIOCM_RTS: ::c_int = 0x004;
++//pub const TIOCM_CAR: ::c_int = 0x040;
++pub const TIOCM_CD: ::c_int = 0x040;
++//pub const TIOCM_RNG: ::c_int = 0x80;
++pub const TIOCM_RI: ::c_int = 0x80;
++
++pub const FS_IOC_GETFLAGS: ::Ioctl = 0x80086601;
++pub const FS_IOC_SETFLAGS: ::Ioctl = 0x40086602;
++pub const FS_IOC_GETVERSION: ::Ioctl = 0x80087601;
++pub const FS_IOC_SETVERSION: ::Ioctl = 0x40087602;
++pub const FS_IOC32_GETFLAGS: ::Ioctl = 0x80046601;
++pub const FS_IOC32_SETFLAGS: ::Ioctl = 0x40046602;
++pub const FS_IOC32_GETVERSION: ::Ioctl = 0x80047601;
++pub const FS_IOC32_SETVERSION: ::Ioctl = 0x40047602;
++
++pub const FICLONE: ::c_ulong = 0x40049409;
++pub const FICLONERANGE: ::c_ulong = 0x4020940D;
++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;
+diff --git a/vendor/libc-0.2.155/src/unix/linux_like/linux/gnu/b64/mod.rs b/vendor/libc-0.2.155/src/unix/linux_like/linux/gnu/b64/mod.rs
+index ff394e33a21..24b76720395 100644
+--- a/vendor/libc-0.2.155/src/unix/linux_like/linux/gnu/b64/mod.rs
++++ b/vendor/libc-0.2.155/src/unix/linux_like/linux/gnu/b64/mod.rs
+@@ -2,11 +2,20 @@
+
+ pub type ino_t = u64;
+ pub type off_t = i64;
++#[cfg(target_arch = "sw64")]
++pub type blkcnt_t = u32;
++#[cfg(not(target_arch = "sw64"))]
+ pub type blkcnt_t = i64;
+ pub type shmatt_t = u64;
+ pub type msgqnum_t = u64;
+ pub type msglen_t = u64;
++#[cfg(target_arch = "sw64")]
++pub type fsblkcnt_t = i32;
++#[cfg(not(target_arch = "sw64"))]
+ pub type fsblkcnt_t = u64;
++#[cfg(target_arch = "sw64")]
++pub type fsfilcnt_t = u32;
++#[cfg(not(target_arch = "sw64"))]
+ pub type fsfilcnt_t = u64;
+ pub type rlim_t = u64;
+ #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
+@@ -20,6 +29,9 @@
+ pub type time_t = i32;
+ pub type __fsword_t = i32;
+ } else {
++ #[cfg(target_arch = "sw64")]
++ pub type __fsword_t = i32;
++ #[cfg(not(target_arch = "sw64"))]
+ pub type __fsword_t = i64;
+ pub type clock_t = i64;
+ pub type time_t = i64;
+@@ -71,6 +83,7 @@ pub struct semid_ds {
+ #[cfg(not(any(
+ target_arch = "aarch64",
+ target_arch = "loongarch64",
++ target_arch = "sw64",
+ target_arch = "mips64",
+ target_arch = "mips64r6",
+ target_arch = "powerpc64",
+@@ -82,6 +95,7 @@ pub struct semid_ds {
+ target_arch = "aarch64",
+ target_arch = "loongarch64",
+ target_arch = "mips64",
++ target_arch = "sw64",
+ target_arch = "mips64r6",
+ target_arch = "powerpc64",
+ target_arch = "riscv64",
+@@ -122,6 +136,9 @@ pub struct semid_ds {
+ } else if #[cfg(any(target_arch = "loongarch64"))] {
+ mod loongarch64;
+ pub use self::loongarch64::*;
++ } else if #[cfg(any(target_arch = "sw64"))] {
++ mod sw64;
++ pub use self::sw64::*;
+ } else {
+ // Unknown target_arch
+ }
+diff --git a/vendor/libc-0.2.155/src/unix/linux_like/linux/gnu/b64/sw64.rs b/vendor/libc-0.2.155/src/unix/linux_like/linux/gnu/b64/sw64.rs
+new file mode 100644
+index 00000000000..1e1fddb909a
+--- /dev/null
++++ b/vendor/libc-0.2.155/src/unix/linux_like/linux/gnu/b64/sw64.rs
+@@ -0,0 +1,943 @@
++//! SW64-specific definitions for 64-bit linux-like values
++
++use pthread_mutex_t;
++
++pub type blksize_t = u32;
++pub type c_char = i8;
++pub type c_long = i64;
++pub type c_ulong = u64;
++pub type nlink_t = u32;
++pub type suseconds_t = i64;
++pub type wchar_t = i32;
++pub type __u64 = ::c_ulong;
++pub type __s64 = ::c_long;
++
++s! {
++ pub struct stat {
++ pub st_dev: ::dev_t,
++ pub st_ino: ::ino64_t,
++ pub st_rdev: ::dev_t,
++ pub st_size: ::off_t,
++ pub st_blocks: ::blkcnt_t,
++ __pad1: ::c_int,
++
++ pub st_mode: ::mode_t,
++ pub st_uid: ::uid_t,
++ pub st_gid: ::gid_t,
++ pub st_blksize: ::blksize_t,
++ pub st_nlink: ::nlink_t,
++ __pad2: ::c_int,
++ pub st_atime: ::time_t,
++ pub st_atime_nsec: ::c_long,
++ pub st_mtime: ::time_t,
++ pub st_mtime_nsec: ::c_long,
++ pub st_ctime: ::time_t,
++ pub st_ctime_nsec: ::c_long,
++ __glibc_reserved: [::c_long; 3],
++ }
++
++ pub struct stat64 {
++ pub st_dev: ::dev_t,
++ pub st_ino: ::ino64_t,
++ pub st_rdev: ::dev_t,
++ pub st_size: ::off64_t,
++ pub st_blocks: ::blkcnt64_t,
++
++ pub st_mode: ::mode_t,
++ pub st_uid: ::uid_t,
++ pub st_gid: ::gid_t,
++ pub st_blksize: ::blksize_t,
++ pub st_nlink: ::nlink_t,
++ __pad0: ::c_int,
++
++ pub st_atime: ::time_t,
++ pub st_atime_nsec: ::c_long,
++ pub st_mtime: ::time_t,
++ pub st_mtime_nsec: ::c_long,
++ pub st_ctime: ::time_t,
++ pub st_ctime_nsec: ::c_long,
++ __unused: [::c_long; 3],
++ }
++
++ pub struct statfs64 {
++ pub f_type: ::c_long,
++ pub f_bsize: ::c_long,
++ pub f_blocks: ::c_long,
++ pub f_bfree: ::c_long,
++ pub f_bavail: ::c_long,
++ pub f_files: ::c_ulong,
++ pub f_ffree: ::c_ulong,
++ pub f_fsid: ::fsid_t,
++ pub f_namelen: ::c_long,
++ pub f_frsize: ::c_long,
++ pub f_flags: ::c_long,
++ pub f_spare: [::c_long; 4],
++ }
++
++ 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 struct statvfs64 {
++ pub f_bsize: ::c_ulong,
++ pub f_frsize: ::c_ulong,
++ pub f_blocks: ::c_long,
++ pub f_bfree: ::c_long,
++ pub f_bavail: ::c_long,
++ pub f_files: ::c_ulong,
++ pub f_ffree: ::c_ulong,
++ pub f_favail: ::c_ulong,
++ 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 {
++ __size: [::c_ulong; 7]
++ }
++
++ // add sigaction stack_t siginfo_t
++
++ pub struct sigaction {
++ pub sa_sigaction: ::sighandler_t,
++ pub sa_mask: ::sigset_t,
++ pub sa_flags: ::c_int,
++ }
++
++ pub struct stack_t {
++ pub ss_sp: *mut ::c_void,
++ pub ss_flags: ::c_int,
++ pub ss_size: ::size_t
++ }
++
++ pub struct siginfo_t {
++ pub si_signo: ::c_int,
++ pub si_errno: ::c_int,
++ pub si_code: ::c_int,
++ pub _pad: [::c_int; 29],
++ _align: [usize; 0],
++ }
++
++ // add flock
++
++ 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 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_uint,
++ pub __seq: ::c_ushort,
++ __pad1: ::c_ushort,
++ __unused1: ::c_ulong,
++ __unused2: ::c_ulong
++ }
++
++ 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: ::c_ulong,
++ __unused5: ::c_ulong
++ }
++
++ // GUYC20210303 copy from 1.34.2 libc/src/unix/notbsd/linux/other/mod.rs
++ pub struct statfs {
++ pub f_type: ::c_long,
++ pub f_bsize: ::c_long,
++ pub f_blocks: ::c_long,
++ pub f_bfree: ::c_long,
++ pub f_bavail: ::c_long,
++
++ pub f_files: ::c_long,
++ pub f_ffree: ::c_long,
++ pub f_fsid: ::fsid_t,
++
++ pub f_namelen: ::c_long,
++ pub f_frsize: ::c_long,
++ pub f_flags: ::c_long,
++ f_spare: [::c_long; 4],
++ }
++}
++
++pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4;
++pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4;
++pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4;
++pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32;
++pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40;
++pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56;
++
++align_const! {
++ 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,
++ ],
++ };
++ 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,
++ ],
++ };
++ 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,
++ ],
++ };
++}
++
++pub const TIOCGSOFTCAR: ::c_ulong = 0x5419;
++pub const TIOCSSOFTCAR: ::c_ulong = 0x541A;
++
++pub const RLIMIT_NOFILE: ::c_uint = 6;
++pub const RLIMIT_NPROC: ::c_int = 8;
++
++pub const O_APPEND: ::c_int = 0o00010;
++pub const O_CREAT: ::c_int = 0o01000;
++pub const O_EXCL: ::c_int = 0o04000;
++pub const O_NOCTTY: ::c_int = 0o010000;
++pub const O_DIRECT: ::c_int = 0o02000000;
++pub const O_DIRECTORY: ::c_int = 0o0100000;
++pub const O_NOFOLLOW: ::c_int = 0o0200000;
++pub const O_NONBLOCK: ::c_int = 0o00004;
++pub const O_CLOEXEC: ::c_int = 0o010000000;
++
++pub const O_DSYNC: ::c_int = 0o040000;
++pub const O_SYNC: ::c_int = 0o020000000 | O_DSYNC;
++pub const O_RSYNC: ::c_int = O_SYNC; // TODO
++pub const O_FSYNC: ::c_int = O_SYNC; // TODO
++
++pub const O_NOATIME: ::c_int = 0o04000000;
++pub const O_PATH: ::c_int = 0o040000000;
++pub const O_TMPFILE: ::c_int = 0o0100100000;
++
++pub const MAP_GROWSDOWN: ::c_int = 0x01000;
++
++pub const EDEADLK: ::c_int = 11;
++pub const ENAMETOOLONG: ::c_int = 63;
++pub const ENOLCK: ::c_int = 77;
++pub const ENOSYS: ::c_int = 78;
++pub const ENOTEMPTY: ::c_int = 66;
++pub const ELOOP: ::c_int = 62;
++
++pub const ENOMSG: ::c_int = 80;
++pub const EIDRM: ::c_int = 81;
++pub const ECHRNG: ::c_int = 88;
++pub const EL2NSYNC: ::c_int = 89;
++pub const EL3HLT: ::c_int = 90;
++pub const EL3RST: ::c_int = 91;
++pub const ELNRNG: ::c_int = 93;
++pub const EUNATCH: ::c_int = 94;
++pub const ENOCSI: ::c_int = 95;
++pub const EL2HLT: ::c_int = 96;
++pub const EBADE: ::c_int = 97;
++pub const EBADR: ::c_int = 98;
++pub const EXFULL: ::c_int = 99;
++pub const ENOANO: ::c_int = 100;
++pub const EBADRQC: ::c_int = 101;
++pub const EBADSLT: ::c_int = 102;
++pub const EMULTIHOP: ::c_int = 110;
++pub const EOVERFLOW: ::c_int = 112;
++pub const ENOTUNIQ: ::c_int = 113;
++pub const EBADFD: ::c_int = 114;
++pub const EBADMSG: ::c_int = 84;
++
++pub const EREMCHG: ::c_int = 115;
++pub const ELIBACC: ::c_int = 122;
++pub const ELIBBAD: ::c_int = 123;
++pub const ELIBSCN: ::c_int = 124;
++pub const ELIBMAX: ::c_int = 125;
++pub const ELIBEXEC: ::c_int = 126;
++pub const EILSEQ: ::c_int = 116;
++
++pub const ERESTART: ::c_int = 127;
++pub const ESTRPIPE: ::c_int = 128;
++pub const EUSERS: ::c_int = 68;
++pub const ENOTSOCK: ::c_int = 38;
++pub const EDESTADDRREQ: ::c_int = 39;
++pub const EMSGSIZE: ::c_int = 40;
++pub const EPROTOTYPE: ::c_int = 41;
++pub const ENOPROTOOPT: ::c_int = 42;
++pub const EPROTONOSUPPORT: ::c_int = 43;
++pub const ESOCKTNOSUPPORT: ::c_int = 44;
++pub const EOPNOTSUPP: ::c_int = 45;
++pub const EPFNOSUPPORT: ::c_int = 46;
++pub const EAFNOSUPPORT: ::c_int = 47;
++pub const EADDRINUSE: ::c_int = 48;
++pub const EADDRNOTAVAIL: ::c_int = 49;
++pub const ENETDOWN: ::c_int = 50;
++pub const ENETUNREACH: ::c_int = 51;
++pub const ENETRESET: ::c_int = 52;
++pub const ECONNABORTED: ::c_int = 53;
++pub const ECONNRESET: ::c_int = 54;
++pub const ENOBUFS: ::c_int = 55;
++pub const EISCONN: ::c_int = 56;
++pub const ENOTCONN: ::c_int = 57;
++pub const ESHUTDOWN: ::c_int = 58;
++pub const ETOOMANYREFS: ::c_int = 59;
++pub const ETIMEDOUT: ::c_int = 60;
++pub const ECONNREFUSED: ::c_int = 61;
++pub const EHOSTDOWN: ::c_int = 64;
++pub const EHOSTUNREACH: ::c_int = 65;
++pub const EALREADY: ::c_int = 37;
++pub const EINPROGRESS: ::c_int = 36;
++pub const ESTALE: ::c_int = 70;
++pub const EDQUOT: ::c_int = 69;
++
++pub const ENOMEDIUM: ::c_int = 129;
++pub const EMEDIUMTYPE: ::c_int = 130;
++pub const ECANCELED: ::c_int = 131;
++pub const ENOKEY: ::c_int = 132;
++pub const EKEYEXPIRED: ::c_int = 133;
++pub const EKEYREVOKED: ::c_int = 134;
++pub const EKEYREJECTED: ::c_int = 135;
++pub const EOWNERDEAD: ::c_int = 136;
++pub const ENOTRECOVERABLE: ::c_int = 137;
++pub const EHWPOISON: ::c_int = 139;
++pub const ERFKILL: ::c_int = 138;
++
++pub const SA_ONSTACK: ::c_int = 0x00000001;
++pub const SA_SIGINFO: ::c_int = 0x00000040;
++pub const SA_NOCLDWAIT: ::c_int = 0x00000020;
++
++pub const SIGCHLD: ::c_int = 20;
++pub const SIGBUS: ::c_int = 10;
++pub const SIGUSR1: ::c_int = 30;
++pub const SIGUSR2: ::c_int = 31;
++pub const SIGCONT: ::c_int = 19;
++pub const SIGSTOP: ::c_int = 17;
++pub const SIGTSTP: ::c_int = 18;
++pub const SIGURG: ::c_int = 16;
++pub const SIGIO: ::c_int = 23;
++pub const SIGSYS: ::c_int = 12;
++pub const SIGINFO: ::c_int = 29;
++//pub const SIGSTKFLT: ::c_int = 16;
++pub const SIGUNUSED: ::c_int = 31;
++pub const SIGPOLL: ::c_int = SIGIO;
++pub const SIGPWR: ::c_int = SIGINFO;
++pub const SIG_SETMASK: ::c_int = 3;
++pub const SIG_BLOCK: ::c_int = 1;
++pub const SIG_UNBLOCK: ::c_int = 2;
++
++pub const POLLWRNORM: ::c_short = 0x0100; // TODO
++pub const POLLWRBAND: ::c_short = 0x0200;
++pub const O_ASYNC: ::c_int = 0o020000;
++pub const O_NDELAY: ::c_int = 0o00004;
++pub const PTRACE_DETACH: ::c_uint = 17;
++pub const EFD_NONBLOCK: ::c_int = 0o000000004;
++
++pub const F_GETLK: ::c_int = 7;
++pub const F_GETOWN: ::c_int = 6;
++pub const F_SETOWN: ::c_int = 5;
++pub const F_SETLK: ::c_int = 8;
++pub const F_SETLKW: ::c_int = 9;
++pub const F_RDLCK: ::c_int = 1;
++pub const F_WRLCK: ::c_int = 2;
++pub const F_UNLCK: ::c_int = 8;
++
++pub const SFD_NONBLOCK: ::c_int = 0o000000004;
++pub const TIOCEXCL: ::c_ulong = 0x540C;
++pub const TIOCNXCL: ::c_ulong = 0x540D;
++pub const TIOCSCTTY: ::c_ulong = 0x540E;
++pub const TIOCSTI: ::c_ulong = 0x5412;
++pub const TIOCMGET: ::c_ulong = 0x5415;
++pub const TIOCMBIS: ::c_ulong = 0x5416;
++pub const TIOCMBIC: ::c_ulong = 0x5417;
++pub const TIOCMSET: ::c_ulong = 0x5418;
++pub const TIOCCONS: ::c_ulong = 0x541D;
++
++pub const SFD_CLOEXEC: ::c_int = 0o010000000;
++
++pub const NCCS: usize = 32;
++pub const O_TRUNC: ::c_int = 0o02000;
++pub const EBFONT: ::c_int = 104;
++pub const ENOSTR: ::c_int = 87;
++pub const ENODATA: ::c_int = 86;
++pub const ETIME: ::c_int = 83;
++pub const ENOSR: ::c_int = 82;
++pub const ENONET: ::c_int = 105;
++pub const ENOPKG: ::c_int = 92;
++pub const EREMOTE: ::c_int = 71;
++pub const EREMOTEIO: ::c_int = 121;
++pub const ENOLINK: ::c_int = 106;
++pub const EADV: ::c_int = 107;
++pub const ESRMNT: ::c_int = 108;
++pub const ECOMM: ::c_int = 109;
++pub const EPROTO: ::c_int = 85;
++pub const EDOTDOT: ::c_int = 111;
++pub const SA_NODEFER: ::c_int = 0x00000008;
++pub const SA_NOMASK: ::c_int = SA_NODEFER;
++pub const SA_RESETHAND: ::c_int = 0x00000010;
++pub const SA_ONESHOT: ::c_int = SA_RESETHAND;
++pub const SA_RESTART: ::c_int = 0x00000002;
++pub const SA_NOCLDSTOP: ::c_int = 0x00000004;
++
++pub const EPOLL_CLOEXEC: ::c_int = 0o010000000; // TODO
++pub const EFD_CLOEXEC: ::c_int = 0o010000000; // TODO
++
++pub const MAP_LOCKED: ::c_int = 0x08000;
++pub const MAP_NORESERVE: ::c_int = 0x10000;
++
++pub const EDEADLOCK: ::c_int = EDEADLK;
++
++pub const FIOCLEX: ::c_ulong = 0x20006601;
++pub const FIONBIO: ::c_ulong = 0x8004667e;
++
++pub const MCL_CURRENT: ::c_int = 8192;
++pub const MCL_FUTURE: ::c_int = 16384;
++
++pub const SIGSTKSZ: ::size_t = 16384;
++pub const MINSIGSTKSZ: ::size_t = 4096;
++pub const CBAUD: ::tcflag_t = 0o0000037;
++pub const CBAUDEX: ::tcflag_t = 0o0000000;
++pub const TAB1: ::c_uint = 0o00002000;
++pub const TAB2: ::c_uint = 0o00004000;
++pub const TAB3: ::c_uint = 0o00006000;
++pub const CR1: ::c_uint = 0o00010000;
++pub const CR2: ::c_uint = 0o00020000;
++pub const CR3: ::c_uint = 0o00030000;
++pub const FF1: ::c_uint = 0o00040000;
++pub const BS1: ::c_uint = 0o00100000;
++pub const VT1: ::c_uint = 0o00200000;
++
++pub const VWERASE: usize = 4;
++pub const VREPRINT: usize = 6;
++pub const VSUSP: usize = 10;
++pub const VSTART: usize = 12;
++pub const VSTOP: usize = 13;
++pub const VDISCARD: usize = 15;
++pub const VTIME: usize = 17;
++pub const IXON: ::tcflag_t = 0o0001000;
++pub const IXOFF: ::tcflag_t = 0o0002000;
++pub const ONLCR: ::tcflag_t = 0o0000002;
++pub const CSIZE: ::tcflag_t = 0o00001400;
++pub const CS6: ::tcflag_t = 0o00000400;
++pub const CS7: ::tcflag_t = 0o00001000;
++pub const CS8: ::tcflag_t = 0o00001400;
++pub const CSTOPB: ::tcflag_t = 0o00002000;
++pub const CREAD: ::tcflag_t = 0o00004000;
++pub const PARENB: ::tcflag_t = 0o00010000;
++pub const PARODD: ::tcflag_t = 0o00020000;
++
++pub const EXTPROC: ::tcflag_t = 0x10000000;
++pub const HUPCL: ::tcflag_t = 0o00040000;
++pub const CLOCAL: ::tcflag_t = 0o00100000;
++pub const ECHOKE: ::tcflag_t = 0x00000001;
++pub const ECHOE: ::tcflag_t = 0x00000002;
++pub const ECHOK: ::tcflag_t = 0x00000004;
++pub const ECHONL: ::tcflag_t = 0x00000010;
++pub const ECHOPRT: ::tcflag_t = 0x00000020;
++pub const ECHOCTL: ::tcflag_t = 0x00000040;
++pub const ISIG: ::tcflag_t = 0x00000080;
++pub const ICANON: ::tcflag_t = 0x00000100;
++pub const PENDIN: ::tcflag_t = 0x20000000;
++pub const NOFLSH: ::tcflag_t = 0x80000000;
++//pub const CIBAUD: ::tcflag_t = 0o07600000;
++pub const VSWTC: usize = 7;
++pub const OLCUC: ::tcflag_t = 0o0000004;
++pub const NLDLY: ::tcflag_t = 0o00001400;
++pub const CRDLY: ::tcflag_t = 0o00030000;
++pub const TABDLY: ::tcflag_t = 0o00006000;
++pub const BSDLY: ::tcflag_t = 0o00100000;
++pub const FFDLY: ::tcflag_t = 0o00040000;
++pub const VTDLY: ::tcflag_t = 0o00200000;
++pub const XTABS: ::tcflag_t = 0o00006000;
++pub const IBSHIFT: ::tcflag_t = 16;
++pub const B0: ::speed_t = 0o0000000;
++pub const B50: ::speed_t = 0o0000001;
++pub const B75: ::speed_t = 0o0000002;
++pub const B110: ::speed_t = 0o0000003;
++pub const B134: ::speed_t = 0o0000004;
++pub const B150: ::speed_t = 0o0000005;
++pub const B200: ::speed_t = 0o0000006;
++pub const B300: ::speed_t = 0o0000007;
++pub const B600: ::speed_t = 0o0000010;
++pub const B1200: ::speed_t = 0o0000011;
++pub const B1800: ::speed_t = 0o0000012;
++pub const B2400: ::speed_t = 0o0000013;
++pub const B4800: ::speed_t = 0o0000014;
++pub const B9600: ::speed_t = 0o0000015;
++pub const B19200: ::speed_t = 0o0000016;
++pub const B38400: ::speed_t = 0o0000017;
++pub const EXTA: ::speed_t = B19200;
++pub const EXTB: ::speed_t = B38400;
++pub const BOTHER: ::speed_t = 0o010000;
++//pub const BOTHER1: ::speed_t = 0o010001;
++pub const B57600: ::speed_t = 0o00020;
++pub const B115200: ::speed_t = 0o00021;
++pub const B230400: ::speed_t = 0o00022;
++pub const B460800: ::speed_t = 0o00023;
++pub const B500000: ::speed_t = 0o00024;
++pub const B576000: ::speed_t = 0o00025;
++pub const B921600: ::speed_t = 0o00026;
++pub const B1000000: ::speed_t = 0o00027;
++pub const B1152000: ::speed_t = 0o00030;
++pub const B1500000: ::speed_t = 0o00031;
++pub const B2000000: ::speed_t = 0o00032;
++pub const B2500000: ::speed_t = 0o00033;
++pub const B3000000: ::speed_t = 0o00034;
++pub const B3500000: ::speed_t = 0o00035;
++pub const B4000000: ::speed_t = 0o00036;
++
++pub const VEOL: usize = 1;
++pub const VEOL2: usize = 2;
++//pub const _VEOL: usize = 5;
++//pub const _VEOL2: usize = 6;
++pub const VMIN: usize = 16;
++//pub const _VMIN: usize = 4;
++pub const IEXTEN: ::tcflag_t = 0x00000400;
++//pub const EXTPROC1: ::tcflag_t = 0x10000000;
++//pub const EXTPROC: ::tcflag_t = 0x10000000;
++pub const TOSTOP: ::tcflag_t = 0x00400000;
++pub const FLUSHO: ::tcflag_t = 0x00800000;
++pub const TCGETS: ::Ioctl = 0x402c7413;
++//pub const TCGETS2: ::c_ulong = 0x401a542a;
++pub const TCGETS2: ::Ioctl = 0x802c542a;
++pub const TCSETS: ::c_ulong = 0x802c7414;
++pub const TCSETSW: ::c_ulong = 0x802c7415;
++//pub const TCSETSW2: ::c_ulong = 0x801a542c;
++pub const TCSETSF: ::c_ulong = 0x802c7416;
++//pub const TCSETSF2: ::c_ulong = 0x801a542d;
++pub const TCGETA: ::c_ulong = 0x40127417;
++pub const TCSETA: ::c_ulong = 0x80127418;
++pub const TCSETAW: ::c_ulong = 0x80127419;
++pub const TCSETAF: ::c_ulong = 0x8012741c;
++pub const TCSBRK: ::c_ulong = 0x2000741d;
++pub const TCSBRKP: ::c_ulong = 0x5425;
++pub const FIONREAD: ::c_ulong = 0x4004667f;
++pub const TCXONC: ::c_ulong = 0x2000741e;
++pub const TCFLSH: ::c_ulong = 0x2000741f;
++pub const TIOCINQ: ::c_ulong = FIONREAD;
++
++pub const TIOCGPGRP: ::c_ulong = 0x40047477;
++pub const TIOCSPGRP: ::c_ulong = 0x80047476;
++pub const TIOCOUTQ: ::c_ulong = 0x40047473;
++pub const TIOCGWINSZ: ::c_ulong = 0x40087468;
++pub const TIOCSWINSZ: ::c_ulong = 0x80087467;
++
++// GUYC20201112 add RLIMIT_RSS ~ TIOCM_DSR
++pub const RLIMIT_RSS: ::c_int = 5;
++pub const RLIMIT_AS: ::c_int = 7;
++pub const RLIMIT_MEMLOCK: ::c_int = 9;
++pub const MAP_ANON: ::c_int = 0x0010;
++pub const MAP_ANONYMOUS: ::c_int = 0x0010;
++pub const MAP_DENYWRITE: ::c_int = 0x2000;
++pub const MAP_EXECUTABLE: ::c_int = 0x04000;
++pub const MAP_POPULATE: ::c_int = 0x20000;
++pub const MAP_NONBLOCK: ::c_int = 0x40000;
++pub const MAP_STACK: ::c_int = 0x80000;
++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 SOCK_STREAM: ::c_int = 1;
++pub const SOCK_DGRAM: ::c_int = 2;
++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 POSIX_FADV_DONTNEED: ::c_int = 4;
++pub const POSIX_FADV_NOREUSE: ::c_int = 5;
++pub const VEOF: usize = 0;
++pub const MAP_HUGETLB: ::c_int = 0x100000;
++pub const TCSANOW: ::c_int = 0;
++pub const TCSADRAIN: ::c_int = 1;
++pub const TCSAFLUSH: ::c_int = 2;
++pub const TIOCLINUX: ::c_ulong = 0x541C;
++pub const TIOCGSERIAL: ::c_ulong = 0x541E;
++pub const RTLD_DEEPBIND: ::c_int = 0x8;
++pub const RTLD_GLOBAL: ::c_int = 0x100;
++pub const RTLD_NOLOAD: ::c_int = 0x4;
++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_RNG: ::c_int = 0x080;
++pub const TIOCM_DSR: ::c_int = 0x100;
++
++pub const SYS_exit: ::c_long = 1;
++pub const SYS_fork: ::c_long = 2;
++pub const SYS_read: ::c_long = 3;
++pub const SYS_write: ::c_long = 4;
++pub const SYS_close: ::c_long = 6;
++pub const SYS_link: ::c_long = 9;
++pub const SYS_unlink: ::c_long = 10;
++pub const SYS_chdir: ::c_long = 12;
++pub const SYS_fchdir: ::c_long = 13;
++pub const SYS_mknod: ::c_long = 14;
++pub const SYS_chmod: ::c_long = 15;
++pub const SYS_chown: ::c_long = 16;
++pub const SYS_brk: ::c_long = 17;
++pub const SYS_lseek: ::c_long = 19;
++pub const SYS_getxpid: ::c_long = 20;
++pub const SYS_umount: ::c_long = 22;
++pub const SYS_umount2: ::c_long = SYS_umount;
++pub const SYS_setuid: ::c_long = 23;
++pub const SYS_getxuid: ::c_long = 24;
++pub const SYS_ptrace: ::c_long = 26;
++pub const SYS_access: ::c_long = 33;
++pub const SYS_sync: ::c_long = 36;
++pub const SYS_kill: ::c_long = 37;
++pub const SYS_setpgid: ::c_long = 39;
++pub const SYS_dup: ::c_long = 41;
++pub const SYS_pipe: ::c_long = 42;
++pub const SYS_open: ::c_long = 45;
++pub const SYS_getxgid: ::c_long = 47;
++pub const SYS_acct: ::c_long = 51;
++pub const SYS_sigpending: ::c_long = 52;
++pub const SYS_ioctl: ::c_long = 54;
++pub const SYS_symlink: ::c_long = 57;
++pub const SYS_readlink: ::c_long = 58;
++pub const SYS_execve: ::c_long = 59;
++pub const SYS_umask: ::c_long = 60;
++pub const SYS_chroot: ::c_long = 61;
++pub const SYS_getpgrp: ::c_long = 63;
++pub const SYS_vfork: ::c_long = 66;
++pub const SYS_stat: ::c_long = 67;
++pub const SYS_lstat: ::c_long = 68;
++pub const SYS_mmap: ::c_long = 71;
++pub const SYS_munmap: ::c_long = 73;
++pub const SYS_mprotect: ::c_long = 74;
++pub const SYS_madvise: ::c_long = 75;
++pub const SYS_vhangup: ::c_long = 76;
++pub const SYS_getgroups: ::c_long = 79;
++pub const SYS_setgroups: ::c_long = 80;
++pub const SYS_setpgrp: ::c_long = 82;
++pub const SYS_gethostname: ::c_long = 87;
++pub const SYS_sethostname: ::c_long = 88;
++pub const SYS_dup2: ::c_long = 90;
++pub const SYS_fstat: ::c_long = 91;
++pub const SYS_fcntl: ::c_long = 92;
++pub const SYS_poll: ::c_long = 94;
++pub const SYS_fsync: ::c_long = 95;
++pub const SYS_setpriority: ::c_long = 96;
++pub const SYS_socket: ::c_long = 97;
++pub const SYS_connect: ::c_long = 98;
++pub const SYS_accept: ::c_long = 99;
++pub const SYS_send: ::c_long = 101;
++pub const SYS_recv: ::c_long = 102;
++pub const SYS_sigreturn: ::c_long = 103;
++pub const SYS_bind: ::c_long = 104;
++pub const SYS_setsockopt: ::c_long = 105;
++pub const SYS_listen: ::c_long = 106;
++pub const SYS_sigsuspend: ::c_long = 111;
++pub const SYS_recvmsg: ::c_long = 113;
++pub const SYS_sendmsg: ::c_long = 114;
++pub const SYS_getsockopt: ::c_long = 118;
++pub const SYS_readv: ::c_long = 120;
++pub const SYS_writev: ::c_long = 121;
++pub const SYS_fchown: ::c_long = 123;
++pub const SYS_fchmod: ::c_long = 124;
++pub const SYS_recvfrom: ::c_long = 125;
++pub const SYS_setreuid: ::c_long = 126;
++pub const SYS_setregid: ::c_long = 127;
++pub const SYS_rename: ::c_long = 128;
++pub const SYS_truncate: ::c_long = 129;
++pub const SYS_ftruncate: ::c_long = 130;
++pub const SYS_flock: ::c_long = 131;
++pub const SYS_setgid: ::c_long = 132;
++pub const SYS_sendto: ::c_long = 133;
++pub const SYS_shutdown: ::c_long = 134;
++pub const SYS_socketpair: ::c_long = 135;
++pub const SYS_mkdir: ::c_long = 136;
++pub const SYS_rmdir: ::c_long = 137;
++pub const SYS_getpeername: ::c_long = 141;
++pub const SYS_getrlimit: ::c_long = 144;
++pub const SYS_setrlimit: ::c_long = 145;
++pub const SYS_setsid: ::c_long = 147;
++pub const SYS_quotactl: ::c_long = 148;
++pub const SYS_getsockname: ::c_long = 150;
++pub const SYS_sigaction: ::c_long = 156;
++pub const SYS_setdomainname: ::c_long = 166;
++pub const SYS_bpf: ::c_long = 170;
++pub const SYS_userfaultfd: ::c_long = 171;
++pub const SYS_membarrier: ::c_long = 172;
++pub const SYS_mlock2: ::c_long = 173;
++pub const SYS_getpid: ::c_long = 174;
++pub const SYS_getppid: ::c_long = 175;
++pub const SYS_getuid: ::c_long = 176;
++pub const SYS_geteuid: ::c_long = 177;
++pub const SYS_getgid: ::c_long = 178;
++pub const SYS_getegid: ::c_long = 179;
++pub const SYS_msgctl: ::c_long = 200;
++pub const SYS_msgget: ::c_long = 201;
++pub const SYS_msgrcv: ::c_long = 202;
++pub const SYS_msgsnd: ::c_long = 203;
++pub const SYS_semctl: ::c_long = 204;
++pub const SYS_semget: ::c_long = 205;
++pub const SYS_semop: ::c_long = 206;
++pub const SYS_lchown: ::c_long = 208;
++pub const SYS_shmctl: ::c_long = 210;
++pub const SYS_shmdt: ::c_long = 211;
++pub const SYS_shmget: ::c_long = 212;
++pub const SYS_msync: ::c_long = 217;
++pub const SYS_getpgid: ::c_long = 233;
++pub const SYS_getsid: ::c_long = 234;
++pub const SYS_sigaltstack: ::c_long = 235;
++pub const SYS_sysfs: ::c_long = 254;
++pub const SYS_pidfd_send_signal: ::c_long = 271;
++pub const SYS_pidfd_open: ::c_long = 281;
++pub const SYS_pidfd_getfd: ::c_long = 285;
++pub const SYS_getpriority: ::c_long = 298;
++pub const SYS_bdflush: ::c_long = 300;
++pub const SYS_mount: ::c_long = 302;
++pub const SYS_swapoff: ::c_long = 304;
++pub const SYS_getdents: ::c_long = 305;
++pub const SYS_create_module: ::c_long = 306;
++pub const SYS_init_module: ::c_long = 307;
++pub const SYS_delete_module: ::c_long = 308;
++pub const SYS_get_kernel_syms: ::c_long = 309;
++pub const SYS_syslog: ::c_long = 310;
++pub const SYS_reboot: ::c_long = 311;
++pub const SYS_clone: ::c_long = 312;
++pub const SYS_clone3: ::c_long = 282;
++pub const SYS_uselib: ::c_long = 313;
++pub const SYS_mlock: ::c_long = 314;
++pub const SYS_munlock: ::c_long = 315;
++pub const SYS_mlockall: ::c_long = 316;
++pub const SYS_munlockall: ::c_long = 317;
++pub const SYS_sysinfo: ::c_long = 318;
++pub const SYS_oldumount: ::c_long = 321;
++pub const SYS_swapon: ::c_long = 322;
++pub const SYS_times: ::c_long = 323;
++pub const SYS_personality: ::c_long = 324;
++pub const SYS_setfsuid: ::c_long = 325;
++pub const SYS_setfsgid: ::c_long = 326;
++pub const SYS_ustat: ::c_long = 327;
++pub const SYS_statfs: ::c_long = 328;
++pub const SYS_fstatfs: ::c_long = 329;
++pub const SYS_sched_setparam: ::c_long = 330;
++pub const SYS_sched_getparam: ::c_long = 331;
++pub const SYS_sched_setscheduler: ::c_long = 332;
++pub const SYS_sched_getscheduler: ::c_long = 333;
++pub const SYS_sched_yield: ::c_long = 334;
++pub const SYS_sched_get_priority_max: ::c_long = 335;
++pub const SYS_sched_get_priority_min: ::c_long = 336;
++pub const SYS_sched_rr_get_interval: ::c_long = 337;
++pub const SYS_afs_syscall: ::c_long = 338;
++pub const SYS_uname: ::c_long = 339;
++pub const SYS_nanosleep: ::c_long = 340;
++pub const SYS_mremap: ::c_long = 341;
++pub const SYS_nfsservctl: ::c_long = 342;
++pub const SYS_setresuid: ::c_long = 343;
++pub const SYS_getresuid: ::c_long = 344;
++pub const SYS_pciconfig_read: ::c_long = 345;
++pub const SYS_pciconfig_write: ::c_long = 346;
++pub const SYS_query_module: ::c_long = 347;
++pub const SYS_prctl: ::c_long = 348;
++pub const SYS_pread64: ::c_long = 349;
++pub const SYS_pwrite64: ::c_long = 350;
++pub const SYS_rt_sigreturn: ::c_long = 351;
++pub const SYS_rt_sigaction: ::c_long = 352;
++pub const SYS_rt_sigprocmask: ::c_long = 353;
++pub const SYS_rt_sigpending: ::c_long = 354;
++pub const SYS_rt_sigtimedwait: ::c_long = 355;
++pub const SYS_rt_sigqueueinfo: ::c_long = 356;
++pub const SYS_rt_sigsuspend: ::c_long = 357;
++pub const SYS_select: ::c_long = 358;
++pub const SYS_gettimeofday: ::c_long = 359;
++pub const SYS_settimeofday: ::c_long = 360;
++pub const SYS_getitimer: ::c_long = 361;
++pub const SYS_setitimer: ::c_long = 362;
++pub const SYS_utimes: ::c_long = 363;
++pub const SYS_getrusage: ::c_long = 364;
++pub const SYS_wait4: ::c_long = 365;
++pub const SYS_adjtimex: ::c_long = 366;
++pub const SYS_getcwd: ::c_long = 367;
++pub const SYS_capget: ::c_long = 368;
++pub const SYS_capset: ::c_long = 369;
++pub const SYS_sendfile: ::c_long = 370;
++pub const SYS_setresgid: ::c_long = 371;
++pub const SYS_getresgid: ::c_long = 372;
++pub const SYS_dipc: ::c_long = 373;
++pub const SYS_pivot_root: ::c_long = 374;
++pub const SYS_mincore: ::c_long = 375;
++pub const SYS_pciconfig_iobase: ::c_long = 376;
++pub const SYS_getdents64: ::c_long = 377;
++pub const SYS_gettid: ::c_long = 378;
++pub const SYS_readahead: ::c_long = 379;
++pub const SYS_tkill: ::c_long = 381;
++pub const SYS_setxattr: ::c_long = 382;
++pub const SYS_lsetxattr: ::c_long = 383;
++pub const SYS_fsetxattr: ::c_long = 384;
++pub const SYS_getxattr: ::c_long = 385;
++pub const SYS_lgetxattr: ::c_long = 386;
++pub const SYS_fgetxattr: ::c_long = 387;
++pub const SYS_listxattr: ::c_long = 388;
++pub const SYS_llistxattr: ::c_long = 389;
++pub const SYS_flistxattr: ::c_long = 390;
++pub const SYS_removexattr: ::c_long = 391;
++pub const SYS_lremovexattr: ::c_long = 392;
++pub const SYS_fremovexattr: ::c_long = 393;
++pub const SYS_futex: ::c_long = 394;
++pub const SYS_sched_setaffinity: ::c_long = 395;
++pub const SYS_sched_getaffinity: ::c_long = 396;
++pub const SYS_tuxcall: ::c_long = 397;
++pub const SYS_io_setup: ::c_long = 398;
++pub const SYS_io_destroy: ::c_long = 399;
++pub const SYS_io_getevents: ::c_long = 400;
++pub const SYS_io_submit: ::c_long = 401;
++pub const SYS_io_cancel: ::c_long = 402;
++pub const SYS_exit_group: ::c_long = 405;
++pub const SYS_lookup_dcookie: ::c_long = 406;
++pub const SYS_epoll_create: ::c_long = 407;
++pub const SYS_epoll_ctl: ::c_long = 408;
++pub const SYS_epoll_wait: ::c_long = 409;
++pub const SYS_remap_file_pages: ::c_long = 410;
++pub const SYS_set_tid_address: ::c_long = 411;
++pub const SYS_restart_syscall: ::c_long = 412;
++pub const SYS_fadvise64: ::c_long = 413;
++pub const SYS_timer_create: ::c_long = 414;
++pub const SYS_timer_settime: ::c_long = 415;
++pub const SYS_timer_gettime: ::c_long = 416;
++pub const SYS_timer_getoverrun: ::c_long = 417;
++pub const SYS_timer_delete: ::c_long = 418;
++pub const SYS_clock_settime: ::c_long = 419;
++pub const SYS_clock_gettime: ::c_long = 420;
++pub const SYS_clock_getres: ::c_long = 421;
++pub const SYS_clock_nanosleep: ::c_long = 422;
++pub const SYS_semtimedop: ::c_long = 423;
++pub const SYS_tgkill: ::c_long = 424;
++pub const SYS_stat64: ::c_long = 425;
++pub const SYS_lstat64: ::c_long = 426;
++pub const SYS_fstat64: ::c_long = 427;
++pub const SYS_vserver: ::c_long = 428;
++pub const SYS_mbind: ::c_long = 429;
++pub const SYS_get_mempolicy: ::c_long = 430;
++pub const SYS_set_mempolicy: ::c_long = 431;
++pub const SYS_mq_open: ::c_long = 432;
++pub const SYS_mq_unlink: ::c_long = 433;
++pub const SYS_mq_timedsend: ::c_long = 434;
++pub const SYS_mq_timedreceive: ::c_long = 435;
++pub const SYS_mq_notify: ::c_long = 436;
++pub const SYS_mq_getsetattr: ::c_long = 437;
++pub const SYS_waitid: ::c_long = 438;
++pub const SYS_add_key: ::c_long = 439;
++pub const SYS_request_key: ::c_long = 440;
++pub const SYS_keyctl: ::c_long = 441;
++pub const SYS_ioprio_set: ::c_long = 442;
++pub const SYS_ioprio_get: ::c_long = 443;
++pub const SYS_inotify_init: ::c_long = 444;
++pub const SYS_inotify_add_watch: ::c_long = 445;
++pub const SYS_inotify_rm_watch: ::c_long = 446;
++pub const SYS_fdatasync: ::c_long = 447;
++pub const SYS_kexec_load: ::c_long = 448;
++pub const SYS_migrate_pages: ::c_long = 449;
++pub const SYS_openat: ::c_long = 450;
++pub const SYS_mkdirat: ::c_long = 451;
++pub const SYS_mknodat: ::c_long = 452;
++pub const SYS_fchownat: ::c_long = 453;
++pub const SYS_futimesat: ::c_long = 454;
++pub const SYS_fstatat64: ::c_long = 455;
++pub const SYS_unlinkat: ::c_long = 456;
++pub const SYS_renameat: ::c_long = 457;
++pub const SYS_linkat: ::c_long = 458;
++pub const SYS_symlinkat: ::c_long = 459;
++pub const SYS_readlinkat: ::c_long = 460;
++pub const SYS_fchmodat: ::c_long = 461;
++pub const SYS_faccessat: ::c_long = 462;
++pub const SYS_pselect6: ::c_long = 463;
++pub const SYS_ppoll: ::c_long = 464;
++pub const SYS_unshare: ::c_long = 465;
++pub const SYS_set_robust_list: ::c_long = 466;
++pub const SYS_get_robust_list: ::c_long = 467;
++pub const SYS_splice: ::c_long = 468;
++pub const SYS_sync_file_range: ::c_long = 469;
++pub const SYS_tee: ::c_long = 470;
++pub const SYS_vmsplice: ::c_long = 471;
++pub const SYS_move_pages: ::c_long = 472;
++pub const SYS_getcpu: ::c_long = 473;
++pub const SYS_epoll_pwait: ::c_long = 474;
++pub const SYS_utimensat: ::c_long = 475;
++pub const SYS_signalfd: ::c_long = 476;
++pub const SYS_timerfd: ::c_long = 477;
++pub const SYS_eventfd: ::c_long = 478;
++pub const SYS_recvmmsg: ::c_long = 479;
++pub const SYS_fallocate: ::c_long = 480;
++pub const SYS_timerfd_create: ::c_long = 481;
++pub const SYS_timerfd_settime: ::c_long = 482;
++pub const SYS_timerfd_gettime: ::c_long = 483;
++pub const SYS_signalfd4: ::c_long = 484;
++pub const SYS_eventfd2: ::c_long = 485;
++pub const SYS_epoll_create1: ::c_long = 486;
++pub const SYS_dup3: ::c_long = 487;
++pub const SYS_pipe2: ::c_long = 488;
++pub const SYS_inotify_init1: ::c_long = 489;
++pub const SYS_preadv: ::c_long = 490;
++pub const SYS_pwritev: ::c_long = 491;
++pub const SYS_rt_tgsigqueueinfo: ::c_long = 492;
++pub const SYS_perf_event_open: ::c_long = 493;
++pub const SYS_fanotify_init: ::c_long = 494;
++pub const SYS_fanotify_mark: ::c_long = 495;
++pub const SYS_prlimit64: ::c_long = 496;
++pub const SYS_name_to_handle_at: ::c_long = 497;
++pub const SYS_open_by_handle_at: ::c_long = 498;
++pub const SYS_clock_adjtime: ::c_long = 499;
++pub const SYS_syncfs: ::c_long = 500;
++pub const SYS_setns: ::c_long = 501;
++pub const SYS_accept4: ::c_long = 502;
++pub const SYS_sendmmsg: ::c_long = 503;
++pub const SYS_process_vm_readv: ::c_long = 504;
++pub const SYS_process_vm_writev: ::c_long = 505;
++pub const SYS_kcmp: ::c_long = 506;
++pub const SYS_finit_module: ::c_long = 507;
++pub const SYS_sched_setattr: ::c_long = 508;
++pub const SYS_sched_getattr: ::c_long = 509;
++pub const SYS_renameat2: ::c_long = 510;
++pub const SYS_getrandom: ::c_long = 511;
++pub const SYS_memfd_create: ::c_long = 512;
++pub const SYS_execveat: ::c_long = 513;
++pub const SYS_seccomp: ::c_long = 514;
++pub const SYS_copy_file_range: ::c_long = 515;
++pub const SYS_preadv2: ::c_long = 516;
++pub const SYS_pwritev2: ::c_long = 517;
++pub const SYS_statx: ::c_long = 518;
++
++pub const F_OFD_GETLK: ::c_int = 36;
++pub const F_OFD_SETLK: ::c_int = 37;
++pub const F_OFD_SETLKW: ::c_int = 38;
++
++#[link(name = "util")]
++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;
++}
+diff --git a/vendor/libc-0.2.155/src/unix/linux_like/linux/gnu/mod.rs b/vendor/libc-0.2.155/src/unix/linux_like/linux/gnu/mod.rs
+index 4b3ee5a15ce..f58a7e6011b 100644
+--- a/vendor/libc-0.2.155/src/unix/linux_like/linux/gnu/mod.rs
++++ b/vendor/libc-0.2.155/src/unix/linux_like/linux/gnu/mod.rs
+@@ -5,6 +5,9 @@
+ pub type regoff_t = ::c_int;
+ pub type __kernel_rwf_t = ::c_int;
+
++#[cfg(target_arch = "sw64")]
++pub type termios2 = termios;
++
+ cfg_if! {
+ if #[cfg(doc)] {
+ // Used in `linux::arch` to define ioctl constants.
+@@ -106,12 +109,16 @@ pub struct cmsghdr {
+ 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,
++ #[cfg(target_arch = "sw64")]
++ pub c_cc: [::cc_t; ::NCCS],
+ pub c_line: ::cc_t,
++ #[cfg(not(target_arch = "sw64"))]
+ pub c_cc: [::cc_t; ::NCCS],
+ #[cfg(not(any(
+ target_arch = "sparc",
+@@ -570,12 +577,14 @@ pub struct utmpx {
+ #[cfg(any(target_arch = "aarch64",
+ target_arch = "s390x",
+ target_arch = "loongarch64",
++ target_arch = "sw64",
+ 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",
++ target_arch = "sw64",
+ all(target_pointer_width = "32",
+ not(target_arch = "x86_64"))))]
+ pub ut_tv: ::timeval,
+@@ -583,12 +592,14 @@ pub struct utmpx {
+ #[cfg(not(any(target_arch = "aarch64",
+ target_arch = "s390x",
+ target_arch = "loongarch64",
++ target_arch = "sw64",
+ 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",
++ target_arch = "sw64",
+ all(target_pointer_width = "32",
+ not(target_arch = "x86_64")))))]
+ pub ut_tv: __timeval,
+@@ -772,6 +783,9 @@ fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
+ pub const RTLD_DI_TLS_MODID: ::c_int = 9;
+ pub const RTLD_DI_TLS_DATA: ::c_int = 10;
+
++#[cfg(target_arch = "sw64")]
++pub const SOCK_NONBLOCK: ::c_int = 0x40000000;
++#[cfg(not(target_arch = "sw64"))]
+ pub const SOCK_NONBLOCK: ::c_int = O_NONBLOCK;
+ pub const PIDFD_NONBLOCK: ::c_uint = O_NONBLOCK as ::c_uint;
+
+@@ -834,6 +848,9 @@ fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
+ pub const TMP_MAX: ::c_uint = 238328;
+ pub const FOPEN_MAX: ::c_uint = 16;
+ pub const FILENAME_MAX: ::c_uint = 4096;
++#[cfg(target_arch = "sw64")]
++pub const POSIX_MADV_DONTNEED: ::c_int = 6;
++#[cfg(not(target_arch = "sw64"))]
+ 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;
+@@ -1250,7 +1267,8 @@ fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
+ pub const PTHREAD_STACK_MIN: ::size_t = 16384;
+ } else if #[cfg(any(
+ target_arch = "sparc",
+- target_arch = "sparc64"
++ target_arch = "sparc64",
++ target_arch = "sw64"
+ ))] {
+ pub const PTHREAD_STACK_MIN: ::size_t = 0x6000;
+ } else {
+@@ -1555,6 +1573,7 @@ pub fn execveat(
+ target_arch = "aarch64",
+ target_arch = "powerpc64",
+ target_arch = "mips64",
++ target_arch = "sw64",
+ target_arch = "mips64r6",
+ target_arch = "s390x",
+ target_arch = "sparc64",
+diff --git a/vendor/libc-0.2.155/src/unix/linux_like/linux/mod.rs b/vendor/libc-0.2.155/src/unix/linux_like/linux/mod.rs
+index dc0d3eaca53..d5fd0e910ad 100644
+--- a/vendor/libc-0.2.155/src/unix/linux_like/linux/mod.rs
++++ b/vendor/libc-0.2.155/src/unix/linux_like/linux/mod.rs
+@@ -6,6 +6,9 @@
+ pub type mode_t = u32;
+ pub type ino64_t = u64;
+ pub type off64_t = i64;
++#[cfg(target_arch = "sw64")]
++pub type blkcnt64_t = u64;
++#[cfg(not(target_arch = "sw64"))]
+ pub type blkcnt64_t = i64;
+ pub type rlim64_t = u64;
+ pub type mqd_t = ::c_int;
+@@ -3716,6 +3719,9 @@ fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
+ pub const MAP_SHARED_VALIDATE: ::c_int = 0x3;
+
+ // include/uapi/asm-generic/mman-common.h
++#[cfg(target_arch = "sw64")]
++pub const MAP_FIXED_NOREPLACE: ::c_int = 0x200000;
++#[cfg(not(target_arch = "sw64"))]
+ pub const MAP_FIXED_NOREPLACE: ::c_int = 0x100000;
+ pub const MLOCK_ONFAULT: ::c_uint = 0x01;
+
+@@ -4240,6 +4246,9 @@ pub fn FUTEX_OP(op: ::c_int, oparg: ::c_int, cmp: ::c_int, cmparg: ::c_int) -> :
+ pub const ENOEXEC: ::c_int = 8;
+ pub const EBADF: ::c_int = 9;
+ pub const ECHILD: ::c_int = 10;
++#[cfg(target_arch = "sw64")]
++pub const EAGAIN: ::c_int = 35;
++#[cfg(not(target_arch = "sw64"))]
+ pub const EAGAIN: ::c_int = 11;
+ pub const ENOMEM: ::c_int = 12;
+ pub const EACCES: ::c_int = 13;
+diff --git a/vendor/libc-0.2.155/src/unix/linux_like/linux/no_align.rs b/vendor/libc-0.2.155/src/unix/linux_like/linux/no_align.rs
+index 328a5cc4842..b917a868432 100644
+--- a/vendor/libc-0.2.155/src/unix/linux_like/linux/no_align.rs
++++ b/vendor/libc-0.2.155/src/unix/linux_like/linux/no_align.rs
+@@ -5,6 +5,7 @@ pub struct pthread_mutexattr_t {
+ #[cfg(any(target_arch = "x86_64",
+ target_arch = "powerpc64",
+ target_arch = "mips64",
++ target_arch = "sw64",
+ target_arch = "mips64r6",
+ target_arch = "s390x",
+ target_arch = "sparc64",
+@@ -17,6 +18,7 @@ pub struct pthread_mutexattr_t {
+ #[cfg(not(any(target_arch = "x86_64",
+ target_arch = "powerpc64",
+ target_arch = "mips64",
++ target_arch = "sw64",
+ target_arch = "mips64r6",
+ target_arch = "s390x",
+ target_arch = "sparc64",
+diff --git a/vendor/libc-0.2.155/src/unix/linux_like/mod.rs b/vendor/libc-0.2.155/src/unix/linux_like/mod.rs
+index 749c8a16d01..640e4665ec8 100644
+--- a/vendor/libc-0.2.155/src/unix/linux_like/mod.rs
++++ b/vendor/libc-0.2.155/src/unix/linux_like/mod.rs
+@@ -597,13 +597,22 @@ fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
+ pub const MAP_FILE: ::c_int = 0x0000;
+ pub const MAP_SHARED: ::c_int = 0x0001;
+ pub const MAP_PRIVATE: ::c_int = 0x0002;
++#[cfg(target_arch = "sw64")]
++pub const MAP_FIXED: ::c_int = 0x0100;
++#[cfg(not(target_arch = "sw64"))]
+ 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;
++#[cfg(target_arch = "sw64")]
++pub const MS_INVALIDATE: ::c_int = 0x0004;
++#[cfg(not(target_arch = "sw64"))]
+ pub const MS_INVALIDATE: ::c_int = 0x0002;
++#[cfg(target_arch = "sw64")]
++pub const MS_SYNC: ::c_int = 0x0002;
++#[cfg(not(target_arch = "sw64"))]
+ pub const MS_SYNC: ::c_int = 0x0004;
+
+ // MS_ flags for mount(2)
+@@ -647,6 +656,9 @@ fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
+ pub const MADV_RANDOM: ::c_int = 1;
+ pub const MADV_SEQUENTIAL: ::c_int = 2;
+ pub const MADV_WILLNEED: ::c_int = 3;
++#[cfg(target_arch = "sw64")]
++pub const MADV_DONTNEED: ::c_int = 6;
++#[cfg(not(target_arch = "sw64"))]
+ pub const MADV_DONTNEED: ::c_int = 4;
+ pub const MADV_FREE: ::c_int = 8;
+ pub const MADV_REMOVE: ::c_int = 9;
+@@ -1126,11 +1138,22 @@ fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
+ 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;
++cfg_if! {
++ if #[cfg(target_arch = "sw64")] {
++ pub const VERASE: usize = 3;
++ pub const VKILL: usize = 5;
++ pub const VINTR: usize = 8;
++ pub const VQUIT: usize = 9;
++ pub const VLNEXT: usize = 14;
++ } else {
++ 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;
+diff --git a/vendor/libc-0.2.157/src/unix/linux_like/linux/align.rs b/vendor/libc-0.2.157/src/unix/linux_like/linux/align.rs
+index 1036e23dc8f..41d5c32f5bf 100644
+--- a/vendor/libc-0.2.157/src/unix/linux_like/linux/align.rs
++++ b/vendor/libc-0.2.157/src/unix/linux_like/linux/align.rs
+@@ -10,6 +10,7 @@ macro_rules! expand_align {
+ target_arch = "sparc64",
+ target_arch = "aarch64",
+ target_arch = "riscv64",
++ target_arch = "sw64",
+ target_arch = "riscv32",
+ target_arch = "loongarch64"),
+ repr(align(4)))]
+@@ -22,6 +23,7 @@ macro_rules! expand_align {
+ target_arch = "sparc64",
+ target_arch = "aarch64",
+ target_arch = "riscv64",
++ target_arch = "sw64",
+ target_arch = "riscv32",
+ target_arch = "loongarch64")),
+ repr(align(8)))]
+diff --git a/vendor/libc-0.2.157/src/unix/linux_like/linux/arch/mod.rs b/vendor/libc-0.2.157/src/unix/linux_like/linux/arch/mod.rs
+index 7f6ddc5a764..db55a9202dd 100644
+--- a/vendor/libc-0.2.157/src/unix/linux_like/linux/arch/mod.rs
++++ b/vendor/libc-0.2.157/src/unix/linux_like/linux/arch/mod.rs
+@@ -11,6 +11,9 @@
+ } else if #[cfg(any(target_arch = "sparc", target_arch = "sparc64"))] {
+ mod sparc;
+ pub use self::sparc::*;
++ } else if #[cfg(target_arch = "sw64")] {
++ mod sw64;
++ pub use self::sw64::*;
+ } else {
+ mod generic;
+ pub use self::generic::*;
+diff --git a/vendor/libc-0.2.157/src/unix/linux_like/linux/arch/sw64/mod.rs b/vendor/libc-0.2.157/src/unix/linux_like/linux/arch/sw64/mod.rs
+new file mode 100644
+index 00000000000..74da8a98fdd
+--- /dev/null
++++ b/vendor/libc-0.2.157/src/unix/linux_like/linux/arch/sw64/mod.rs
+@@ -0,0 +1,120 @@
++//s! {
++// pub struct ktermios {
++// pub c_iflag: ::tcflag_t,
++// pub c_oflag: ::tcflag_t,
++// pub c_cflag: ::tcflag_t,
++// pub c_lflag: ::tcflag_t,
++// pub c_cc: [::cc_t; 19],
++// pub c_line: ::cc_t,
++// pub c_ispeed: ::speed_t,
++// pub c_ospeed: ::speed_t,
++// }
++//}
++//pub type termios2 = termios;
++pub const SOL_SOCKET: ::c_int = 0xffff;
++pub const SO_REUSEADDR: ::c_int = 0x0004;
++pub const SO_TYPE: ::c_int = 0x1008;
++pub const SO_ERROR: ::c_int = 0x1007;
++pub const SO_DONTROUTE: ::c_int = 0x0010;
++pub const SO_BROADCAST: ::c_int = 0x0020;
++pub const SO_SNDBUF: ::c_int = 0x1001;
++pub const SO_RCVBUF: ::c_int = 0x1002;
++pub const SO_SNDBUFFORCE: ::c_int = 0x100a;
++pub const SO_RCVBUFFORCE: ::c_int = 0x100b;
++pub const SO_KEEPALIVE: ::c_int = 0x0008;
++pub const SO_OOBINLINE: ::c_int = 0x0100;
++pub const SO_NO_CHECK: ::c_int = 11;
++pub const SO_PRIORITY: ::c_int = 12;
++
++pub const SO_LINGER: ::c_int = 0x0080;
++pub const SO_BSDCOMPAT: ::c_int = 14;
++pub const SO_REUSEPORT: ::c_int = 0x0200;
++pub const SO_PASSCRED: ::c_int = 17;
++pub const SO_PEERCRED: ::c_int = 18;
++pub const SO_RCVLOWAT: ::c_int = 0x1010;
++pub const SO_SNDLOWAT: ::c_int = 0x1011;
++pub const SO_RCVTIMEO: ::c_int = 0x1012;
++pub const SO_SNDTIMEO: ::c_int = 0x1013;
++
++pub const SO_SECURITY_AUTHENTICATION: ::c_int = 19;
++pub const SO_SECURITY_ENCRYPTION_TRANSPORT: ::c_int = 20;
++pub const SO_SECURITY_ENCRYPTION_NETWORK: ::c_int = 21;
++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_ACCEPTCONN: ::c_int = 0x1014;
++
++pub const SO_PEERSEC: ::c_int = 30;
++pub const SO_PASSSEC: ::c_int = 34;
++pub const SO_TIMESTAMPNS: ::c_int = 35;
++pub const SCM_TIMESTAMPNS: ::c_int = SO_TIMESTAMPNS;
++pub const SO_MARK: ::c_int = 36;
++pub const SO_PROTOCOL: ::c_int = 0x1028;
++pub const SO_DOMAIN: ::c_int = 0x1029;
++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 SCM_TIMESTAMPING: ::c_int = SO_TIMESTAMPING;
++pub const SO_TIMESTAMPING: ::c_int = 37;
++pub const RLIM_INFINITY: ::rlim_t = !0;
++
++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_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 = 16;
++pub const RLIM_NLIMITS: ::__rlimit_resource_t = RLIMIT_NLIMITS;
++
++pub const BLKIOMIN: ::Ioctl = 0x20001278;
++pub const BLKIOOPT: ::Ioctl = 0x20001279;
++pub const BLKSSZGET: ::Ioctl = 0x20001268;
++pub const BLKPBSZGET: ::Ioctl = 0x2000127B;
++pub const FIONCLEX: ::Ioctl = 0x20006602;
++//pub const IBSHIFT: ::tcflag_t = 16;
++
++pub const TIOCM_LE: ::c_int = 0x1;
++pub const TIOCM_DTR: ::c_int = 0x002;
++pub const TIOCM_RTS: ::c_int = 0x004;
++//pub const TIOCM_CAR: ::c_int = 0x040;
++pub const TIOCM_CD: ::c_int = 0x040;
++//pub const TIOCM_RNG: ::c_int = 0x80;
++pub const TIOCM_RI: ::c_int = 0x80;
++
++pub const FS_IOC_GETFLAGS: ::Ioctl = 0x80086601;
++pub const FS_IOC_SETFLAGS: ::Ioctl = 0x40086602;
++pub const FS_IOC_GETVERSION: ::Ioctl = 0x80087601;
++pub const FS_IOC_SETVERSION: ::Ioctl = 0x40087602;
++pub const FS_IOC32_GETFLAGS: ::Ioctl = 0x80046601;
++pub const FS_IOC32_SETFLAGS: ::Ioctl = 0x40046602;
++pub const FS_IOC32_GETVERSION: ::Ioctl = 0x80047601;
++pub const FS_IOC32_SETVERSION: ::Ioctl = 0x40047602;
++
++pub const FICLONE: ::c_ulong = 0x40049409;
++pub const FICLONERANGE: ::c_ulong = 0x4020940D;
++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;
+diff --git a/vendor/libc-0.2.157/src/unix/linux_like/linux/gnu/b64/mod.rs b/vendor/libc-0.2.157/src/unix/linux_like/linux/gnu/b64/mod.rs
+index ff394e33a21..24b76720395 100644
+--- a/vendor/libc-0.2.157/src/unix/linux_like/linux/gnu/b64/mod.rs
++++ b/vendor/libc-0.2.157/src/unix/linux_like/linux/gnu/b64/mod.rs
+@@ -2,11 +2,20 @@
+
+ pub type ino_t = u64;
+ pub type off_t = i64;
++#[cfg(target_arch = "sw64")]
++pub type blkcnt_t = u32;
++#[cfg(not(target_arch = "sw64"))]
+ pub type blkcnt_t = i64;
+ pub type shmatt_t = u64;
+ pub type msgqnum_t = u64;
+ pub type msglen_t = u64;
++#[cfg(target_arch = "sw64")]
++pub type fsblkcnt_t = i32;
++#[cfg(not(target_arch = "sw64"))]
+ pub type fsblkcnt_t = u64;
++#[cfg(target_arch = "sw64")]
++pub type fsfilcnt_t = u32;
++#[cfg(not(target_arch = "sw64"))]
+ pub type fsfilcnt_t = u64;
+ pub type rlim_t = u64;
+ #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
+@@ -20,6 +29,9 @@
+ pub type time_t = i32;
+ pub type __fsword_t = i32;
+ } else {
++ #[cfg(target_arch = "sw64")]
++ pub type __fsword_t = i32;
++ #[cfg(not(target_arch = "sw64"))]
+ pub type __fsword_t = i64;
+ pub type clock_t = i64;
+ pub type time_t = i64;
+@@ -71,6 +83,7 @@ pub struct semid_ds {
+ #[cfg(not(any(
+ target_arch = "aarch64",
+ target_arch = "loongarch64",
++ target_arch = "sw64",
+ target_arch = "mips64",
+ target_arch = "mips64r6",
+ target_arch = "powerpc64",
+@@ -82,6 +95,7 @@ pub struct semid_ds {
+ target_arch = "aarch64",
+ target_arch = "loongarch64",
+ target_arch = "mips64",
++ target_arch = "sw64",
+ target_arch = "mips64r6",
+ target_arch = "powerpc64",
+ target_arch = "riscv64",
+@@ -122,6 +136,9 @@ pub struct semid_ds {
+ } else if #[cfg(any(target_arch = "loongarch64"))] {
+ mod loongarch64;
+ pub use self::loongarch64::*;
++ } else if #[cfg(any(target_arch = "sw64"))] {
++ mod sw64;
++ pub use self::sw64::*;
+ } else {
+ // Unknown target_arch
+ }
+diff --git a/vendor/libc-0.2.157/src/unix/linux_like/linux/gnu/b64/sw64.rs b/vendor/libc-0.2.157/src/unix/linux_like/linux/gnu/b64/sw64.rs
+new file mode 100644
+index 00000000000..be6fb71ed4b
+--- /dev/null
++++ b/vendor/libc-0.2.157/src/unix/linux_like/linux/gnu/b64/sw64.rs
+@@ -0,0 +1,943 @@
++//! SW64-specific definitions for 64-bit linux-like values
++
++use pthread_mutex_t;
++
++pub type blksize_t = u32;
++pub type c_char = i8;
++pub type c_long = i64;
++pub type c_ulong = u64;
++pub type nlink_t = u32;
++pub type suseconds_t = i64;
++pub type wchar_t = i32;
++pub type __u64 = ::c_ulong;
++pub type __s64 = ::c_long;
++
++s! {
++ pub struct stat {
++ pub st_dev: ::dev_t,
++ pub st_ino: ::ino64_t,
++ pub st_rdev: ::dev_t,
++ pub st_size: ::off_t,
++ pub st_blocks: ::blkcnt_t,
++ __pad1: ::c_int,
++
++ pub st_mode: ::mode_t,
++ pub st_uid: ::uid_t,
++ pub st_gid: ::gid_t,
++ pub st_blksize: ::blksize_t,
++ pub st_nlink: ::nlink_t,
++ __pad2: ::c_int,
++ pub st_atime: ::time_t,
++ pub st_atime_nsec: ::c_long,
++ pub st_mtime: ::time_t,
++ pub st_mtime_nsec: ::c_long,
++ pub st_ctime: ::time_t,
++ pub st_ctime_nsec: ::c_long,
++ __glibc_reserved: [::c_long; 3],
++ }
++
++ pub struct stat64 {
++ pub st_dev: ::dev_t,
++ pub st_ino: ::ino64_t,
++ pub st_rdev: ::dev_t,
++ pub st_size: ::off64_t,
++ pub st_blocks: ::blkcnt64_t,
++
++ pub st_mode: ::mode_t,
++ pub st_uid: ::uid_t,
++ pub st_gid: ::gid_t,
++ pub st_blksize: ::blksize_t,
++ pub st_nlink: ::nlink_t,
++ __pad0: ::c_int,
++
++ pub st_atime: ::time_t,
++ pub st_atime_nsec: ::c_long,
++ pub st_mtime: ::time_t,
++ pub st_mtime_nsec: ::c_long,
++ pub st_ctime: ::time_t,
++ pub st_ctime_nsec: ::c_long,
++ __unused: [::c_long; 3],
++ }
++
++ pub struct statfs64 {
++ pub f_type: ::c_long,
++ pub f_bsize: ::c_long,
++ pub f_blocks: ::c_long,
++ pub f_bfree: ::c_long,
++ pub f_bavail: ::c_long,
++ pub f_files: ::c_ulong,
++ pub f_ffree: ::c_ulong,
++ pub f_fsid: ::fsid_t,
++ pub f_namelen: ::c_long,
++ pub f_frsize: ::c_long,
++ pub f_flags: ::c_long,
++ pub f_spare: [::c_long; 4],
++ }
++
++ 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 struct statvfs64 {
++ pub f_bsize: ::c_ulong,
++ pub f_frsize: ::c_ulong,
++ pub f_blocks: ::c_long,
++ pub f_bfree: ::c_long,
++ pub f_bavail: ::c_long,
++ pub f_files: ::c_ulong,
++ pub f_ffree: ::c_ulong,
++ pub f_favail: ::c_ulong,
++ 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 {
++ __size: [::c_ulong; 7]
++ }
++
++ // GUYC20201103 add sigaction stack_t siginfo_t
++
++ pub struct sigaction {
++ pub sa_sigaction: ::sighandler_t,
++ pub sa_mask: ::sigset_t,
++ pub sa_flags: ::c_int,
++ }
++
++ pub struct stack_t {
++ pub ss_sp: *mut ::c_void,
++ pub ss_flags: ::c_int,
++ pub ss_size: ::size_t
++ }
++
++ pub struct siginfo_t {
++ pub si_signo: ::c_int,
++ pub si_errno: ::c_int,
++ pub si_code: ::c_int,
++ pub _pad: [::c_int; 29],
++ _align: [usize; 0],
++ }
++
++ // GUYC20201103 add flock
++
++ 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 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_uint,
++ pub __seq: ::c_ushort,
++ __pad1: ::c_ushort,
++ __unused1: ::c_ulong,
++ __unused2: ::c_ulong
++ }
++
++ 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: ::c_ulong,
++ __unused5: ::c_ulong
++ }
++
++ // GUYC20210303 copy from 1.34.2 libc/src/unix/notbsd/linux/other/mod.rs
++ pub struct statfs {
++ pub f_type: ::c_long,
++ pub f_bsize: ::c_long,
++ pub f_blocks: ::c_long,
++ pub f_bfree: ::c_long,
++ pub f_bavail: ::c_long,
++
++ pub f_files: ::c_long,
++ pub f_ffree: ::c_long,
++ pub f_fsid: ::fsid_t,
++
++ pub f_namelen: ::c_long,
++ pub f_frsize: ::c_long,
++ pub f_flags: ::c_long,
++ f_spare: [::c_long; 4],
++ }
++}
++
++pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4;
++pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4;
++pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4;
++pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32;
++pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40;
++pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56;
++
++align_const! {
++ 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,
++ ],
++ };
++ 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,
++ ],
++ };
++ 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,
++ ],
++ };
++}
++
++pub const TIOCGSOFTCAR: ::c_ulong = 0x5419;
++pub const TIOCSSOFTCAR: ::c_ulong = 0x541A;
++
++pub const RLIMIT_NOFILE: ::c_uint = 6;
++pub const RLIMIT_NPROC: ::__rlimit_resource_t = 8;
++
++pub const O_APPEND: ::c_int = 0o00010;
++pub const O_CREAT: ::c_int = 0o01000;
++pub const O_EXCL: ::c_int = 0o04000;
++pub const O_NOCTTY: ::c_int = 0o010000;
++pub const O_DIRECT: ::c_int = 0o02000000;
++pub const O_DIRECTORY: ::c_int = 0o0100000;
++pub const O_NOFOLLOW: ::c_int = 0o0200000;
++pub const O_NONBLOCK: ::c_int = 0o00004;
++pub const O_CLOEXEC: ::c_int = 0o010000000;
++
++pub const O_DSYNC: ::c_int = 0o040000;
++pub const O_SYNC: ::c_int = 0o020000000 | O_DSYNC;
++pub const O_RSYNC: ::c_int = O_SYNC; // TODO
++pub const O_FSYNC: ::c_int = O_SYNC; // TODO
++
++pub const O_NOATIME: ::c_int = 0o04000000;
++pub const O_PATH: ::c_int = 0o040000000;
++pub const O_TMPFILE: ::c_int = 0o0100100000;
++
++pub const MAP_GROWSDOWN: ::c_int = 0x01000;
++
++pub const EDEADLK: ::c_int = 11;
++pub const ENAMETOOLONG: ::c_int = 63;
++pub const ENOLCK: ::c_int = 77;
++pub const ENOSYS: ::c_int = 78;
++pub const ENOTEMPTY: ::c_int = 66;
++pub const ELOOP: ::c_int = 62;
++
++pub const ENOMSG: ::c_int = 80;
++pub const EIDRM: ::c_int = 81;
++pub const ECHRNG: ::c_int = 88;
++pub const EL2NSYNC: ::c_int = 89;
++pub const EL3HLT: ::c_int = 90;
++pub const EL3RST: ::c_int = 91;
++pub const ELNRNG: ::c_int = 93;
++pub const EUNATCH: ::c_int = 94;
++pub const ENOCSI: ::c_int = 95;
++pub const EL2HLT: ::c_int = 96;
++pub const EBADE: ::c_int = 97;
++pub const EBADR: ::c_int = 98;
++pub const EXFULL: ::c_int = 99;
++pub const ENOANO: ::c_int = 100;
++pub const EBADRQC: ::c_int = 101;
++pub const EBADSLT: ::c_int = 102;
++pub const EMULTIHOP: ::c_int = 110;
++pub const EOVERFLOW: ::c_int = 112;
++pub const ENOTUNIQ: ::c_int = 113;
++pub const EBADFD: ::c_int = 114;
++pub const EBADMSG: ::c_int = 84;
++
++pub const EREMCHG: ::c_int = 115;
++pub const ELIBACC: ::c_int = 122;
++pub const ELIBBAD: ::c_int = 123;
++pub const ELIBSCN: ::c_int = 124;
++pub const ELIBMAX: ::c_int = 125;
++pub const ELIBEXEC: ::c_int = 126;
++pub const EILSEQ: ::c_int = 116;
++
++pub const ERESTART: ::c_int = 127;
++pub const ESTRPIPE: ::c_int = 128;
++pub const EUSERS: ::c_int = 68;
++pub const ENOTSOCK: ::c_int = 38;
++pub const EDESTADDRREQ: ::c_int = 39;
++pub const EMSGSIZE: ::c_int = 40;
++pub const EPROTOTYPE: ::c_int = 41;
++pub const ENOPROTOOPT: ::c_int = 42;
++pub const EPROTONOSUPPORT: ::c_int = 43;
++pub const ESOCKTNOSUPPORT: ::c_int = 44;
++pub const EOPNOTSUPP: ::c_int = 45;
++pub const EPFNOSUPPORT: ::c_int = 46;
++pub const EAFNOSUPPORT: ::c_int = 47;
++pub const EADDRINUSE: ::c_int = 48;
++pub const EADDRNOTAVAIL: ::c_int = 49;
++pub const ENETDOWN: ::c_int = 50;
++pub const ENETUNREACH: ::c_int = 51;
++pub const ENETRESET: ::c_int = 52;
++pub const ECONNABORTED: ::c_int = 53;
++pub const ECONNRESET: ::c_int = 54;
++pub const ENOBUFS: ::c_int = 55;
++pub const EISCONN: ::c_int = 56;
++pub const ENOTCONN: ::c_int = 57;
++pub const ESHUTDOWN: ::c_int = 58;
++pub const ETOOMANYREFS: ::c_int = 59;
++pub const ETIMEDOUT: ::c_int = 60;
++pub const ECONNREFUSED: ::c_int = 61;
++pub const EHOSTDOWN: ::c_int = 64;
++pub const EHOSTUNREACH: ::c_int = 65;
++pub const EALREADY: ::c_int = 37;
++pub const EINPROGRESS: ::c_int = 36;
++pub const ESTALE: ::c_int = 70;
++pub const EDQUOT: ::c_int = 69;
++
++pub const ENOMEDIUM: ::c_int = 129;
++pub const EMEDIUMTYPE: ::c_int = 130;
++pub const ECANCELED: ::c_int = 131;
++pub const ENOKEY: ::c_int = 132;
++pub const EKEYEXPIRED: ::c_int = 133;
++pub const EKEYREVOKED: ::c_int = 134;
++pub const EKEYREJECTED: ::c_int = 135;
++pub const EOWNERDEAD: ::c_int = 136;
++pub const ENOTRECOVERABLE: ::c_int = 137;
++pub const EHWPOISON: ::c_int = 139;
++pub const ERFKILL: ::c_int = 138;
++
++pub const SA_ONSTACK: ::c_int = 0x00000001;
++pub const SA_SIGINFO: ::c_int = 0x00000040;
++pub const SA_NOCLDWAIT: ::c_int = 0x00000020;
++
++pub const SIGCHLD: ::c_int = 20;
++pub const SIGBUS: ::c_int = 10;
++pub const SIGUSR1: ::c_int = 30;
++pub const SIGUSR2: ::c_int = 31;
++pub const SIGCONT: ::c_int = 19;
++pub const SIGSTOP: ::c_int = 17;
++pub const SIGTSTP: ::c_int = 18;
++pub const SIGURG: ::c_int = 16;
++pub const SIGIO: ::c_int = 23;
++pub const SIGSYS: ::c_int = 12;
++pub const SIGINFO: ::c_int = 29;
++//pub const SIGSTKFLT: ::c_int = 16;
++pub const SIGUNUSED: ::c_int = 31;
++pub const SIGPOLL: ::c_int = SIGIO;
++pub const SIGPWR: ::c_int = SIGINFO;
++pub const SIG_SETMASK: ::c_int = 3;
++pub const SIG_BLOCK: ::c_int = 1;
++pub const SIG_UNBLOCK: ::c_int = 2;
++
++pub const POLLWRNORM: ::c_short = 0x0100; // TODO
++pub const POLLWRBAND: ::c_short = 0x0200;
++pub const O_ASYNC: ::c_int = 0o020000;
++pub const O_NDELAY: ::c_int = 0o00004;
++pub const PTRACE_DETACH: ::c_uint = 17;
++pub const EFD_NONBLOCK: ::c_int = 0o000000004;
++
++pub const F_GETLK: ::c_int = 7;
++pub const F_GETOWN: ::c_int = 6;
++pub const F_SETOWN: ::c_int = 5;
++pub const F_SETLK: ::c_int = 8;
++pub const F_SETLKW: ::c_int = 9;
++pub const F_RDLCK: ::c_int = 1;
++pub const F_WRLCK: ::c_int = 2;
++pub const F_UNLCK: ::c_int = 8;
++
++pub const SFD_NONBLOCK: ::c_int = 0o000000004;
++pub const TIOCEXCL: ::c_ulong = 0x540C;
++pub const TIOCNXCL: ::c_ulong = 0x540D;
++pub const TIOCSCTTY: ::c_ulong = 0x540E;
++pub const TIOCSTI: ::c_ulong = 0x5412;
++pub const TIOCMGET: ::c_ulong = 0x5415;
++pub const TIOCMBIS: ::c_ulong = 0x5416;
++pub const TIOCMBIC: ::c_ulong = 0x5417;
++pub const TIOCMSET: ::c_ulong = 0x5418;
++pub const TIOCCONS: ::c_ulong = 0x541D;
++
++pub const SFD_CLOEXEC: ::c_int = 0o010000000;
++
++pub const NCCS: usize = 32;
++pub const O_TRUNC: ::c_int = 0o02000;
++pub const EBFONT: ::c_int = 104;
++pub const ENOSTR: ::c_int = 87;
++pub const ENODATA: ::c_int = 86;
++pub const ETIME: ::c_int = 83;
++pub const ENOSR: ::c_int = 82;
++pub const ENONET: ::c_int = 105;
++pub const ENOPKG: ::c_int = 92;
++pub const EREMOTE: ::c_int = 71;
++pub const EREMOTEIO: ::c_int = 121;
++pub const ENOLINK: ::c_int = 106;
++pub const EADV: ::c_int = 107;
++pub const ESRMNT: ::c_int = 108;
++pub const ECOMM: ::c_int = 109;
++pub const EPROTO: ::c_int = 85;
++pub const EDOTDOT: ::c_int = 111;
++pub const SA_NODEFER: ::c_int = 0x00000008;
++pub const SA_NOMASK: ::c_int = SA_NODEFER;
++pub const SA_RESETHAND: ::c_int = 0x00000010;
++pub const SA_ONESHOT: ::c_int = SA_RESETHAND;
++pub const SA_RESTART: ::c_int = 0x00000002;
++pub const SA_NOCLDSTOP: ::c_int = 0x00000004;
++
++pub const EPOLL_CLOEXEC: ::c_int = 0o010000000; // TODO
++pub const EFD_CLOEXEC: ::c_int = 0o010000000; // TODO
++
++pub const MAP_LOCKED: ::c_int = 0x08000;
++pub const MAP_NORESERVE: ::c_int = 0x10000;
++
++pub const EDEADLOCK: ::c_int = EDEADLK;
++
++pub const FIOCLEX: ::c_ulong = 0x20006601;
++pub const FIONBIO: ::c_ulong = 0x8004667e;
++
++pub const MCL_CURRENT: ::c_int = 8192;
++pub const MCL_FUTURE: ::c_int = 16384;
++
++pub const SIGSTKSZ: ::size_t = 16384;
++pub const MINSIGSTKSZ: ::size_t = 4096;
++pub const CBAUD: ::tcflag_t = 0o0000037;
++pub const CBAUDEX: ::tcflag_t = 0o0000000;
++pub const TAB1: ::c_uint = 0o00002000;
++pub const TAB2: ::c_uint = 0o00004000;
++pub const TAB3: ::c_uint = 0o00006000;
++pub const CR1: ::c_uint = 0o00010000;
++pub const CR2: ::c_uint = 0o00020000;
++pub const CR3: ::c_uint = 0o00030000;
++pub const FF1: ::c_uint = 0o00040000;
++pub const BS1: ::c_uint = 0o00100000;
++pub const VT1: ::c_uint = 0o00200000;
++
++pub const VWERASE: usize = 4;
++pub const VREPRINT: usize = 6;
++pub const VSUSP: usize = 10;
++pub const VSTART: usize = 12;
++pub const VSTOP: usize = 13;
++pub const VDISCARD: usize = 15;
++pub const VTIME: usize = 17;
++pub const IXON: ::tcflag_t = 0o0001000;
++pub const IXOFF: ::tcflag_t = 0o0002000;
++pub const ONLCR: ::tcflag_t = 0o0000002;
++pub const CSIZE: ::tcflag_t = 0o00001400;
++pub const CS6: ::tcflag_t = 0o00000400;
++pub const CS7: ::tcflag_t = 0o00001000;
++pub const CS8: ::tcflag_t = 0o00001400;
++pub const CSTOPB: ::tcflag_t = 0o00002000;
++pub const CREAD: ::tcflag_t = 0o00004000;
++pub const PARENB: ::tcflag_t = 0o00010000;
++pub const PARODD: ::tcflag_t = 0o00020000;
++
++pub const EXTPROC: ::tcflag_t = 0x10000000;
++pub const HUPCL: ::tcflag_t = 0o00040000;
++pub const CLOCAL: ::tcflag_t = 0o00100000;
++pub const ECHOKE: ::tcflag_t = 0x00000001;
++pub const ECHOE: ::tcflag_t = 0x00000002;
++pub const ECHOK: ::tcflag_t = 0x00000004;
++pub const ECHONL: ::tcflag_t = 0x00000010;
++pub const ECHOPRT: ::tcflag_t = 0x00000020;
++pub const ECHOCTL: ::tcflag_t = 0x00000040;
++pub const ISIG: ::tcflag_t = 0x00000080;
++pub const ICANON: ::tcflag_t = 0x00000100;
++pub const PENDIN: ::tcflag_t = 0x20000000;
++pub const NOFLSH: ::tcflag_t = 0x80000000;
++//pub const CIBAUD: ::tcflag_t = 0o07600000;
++pub const VSWTC: usize = 7;
++pub const OLCUC: ::tcflag_t = 0o0000004;
++pub const NLDLY: ::tcflag_t = 0o00001400;
++pub const CRDLY: ::tcflag_t = 0o00030000;
++pub const TABDLY: ::tcflag_t = 0o00006000;
++pub const BSDLY: ::tcflag_t = 0o00100000;
++pub const FFDLY: ::tcflag_t = 0o00040000;
++pub const VTDLY: ::tcflag_t = 0o00200000;
++pub const XTABS: ::tcflag_t = 0o00006000;
++pub const IBSHIFT: ::tcflag_t = 16;
++pub const B0: ::speed_t = 0o0000000;
++pub const B50: ::speed_t = 0o0000001;
++pub const B75: ::speed_t = 0o0000002;
++pub const B110: ::speed_t = 0o0000003;
++pub const B134: ::speed_t = 0o0000004;
++pub const B150: ::speed_t = 0o0000005;
++pub const B200: ::speed_t = 0o0000006;
++pub const B300: ::speed_t = 0o0000007;
++pub const B600: ::speed_t = 0o0000010;
++pub const B1200: ::speed_t = 0o0000011;
++pub const B1800: ::speed_t = 0o0000012;
++pub const B2400: ::speed_t = 0o0000013;
++pub const B4800: ::speed_t = 0o0000014;
++pub const B9600: ::speed_t = 0o0000015;
++pub const B19200: ::speed_t = 0o0000016;
++pub const B38400: ::speed_t = 0o0000017;
++pub const EXTA: ::speed_t = B19200;
++pub const EXTB: ::speed_t = B38400;
++pub const BOTHER: ::speed_t = 0o010000;
++//pub const BOTHER1: ::speed_t = 0o010001;
++pub const B57600: ::speed_t = 0o00020;
++pub const B115200: ::speed_t = 0o00021;
++pub const B230400: ::speed_t = 0o00022;
++pub const B460800: ::speed_t = 0o00023;
++pub const B500000: ::speed_t = 0o00024;
++pub const B576000: ::speed_t = 0o00025;
++pub const B921600: ::speed_t = 0o00026;
++pub const B1000000: ::speed_t = 0o00027;
++pub const B1152000: ::speed_t = 0o00030;
++pub const B1500000: ::speed_t = 0o00031;
++pub const B2000000: ::speed_t = 0o00032;
++pub const B2500000: ::speed_t = 0o00033;
++pub const B3000000: ::speed_t = 0o00034;
++pub const B3500000: ::speed_t = 0o00035;
++pub const B4000000: ::speed_t = 0o00036;
++
++pub const VEOL: usize = 1;
++pub const VEOL2: usize = 2;
++//pub const _VEOL: usize = 5;
++//pub const _VEOL2: usize = 6;
++pub const VMIN: usize = 16;
++//pub const _VMIN: usize = 4;
++pub const IEXTEN: ::tcflag_t = 0x00000400;
++//pub const EXTPROC1: ::tcflag_t = 0x10000000;
++//pub const EXTPROC: ::tcflag_t = 0x10000000;
++pub const TOSTOP: ::tcflag_t = 0x00400000;
++pub const FLUSHO: ::tcflag_t = 0x00800000;
++pub const TCGETS: ::Ioctl = 0x402c7413;
++//pub const TCGETS2: ::c_ulong = 0x401a542a;
++pub const TCGETS2: ::Ioctl = 0x802c542a;
++pub const TCSETS: ::c_ulong = 0x802c7414;
++pub const TCSETSW: ::c_ulong = 0x802c7415;
++//pub const TCSETSW2: ::c_ulong = 0x801a542c;
++pub const TCSETSF: ::c_ulong = 0x802c7416;
++//pub const TCSETSF2: ::c_ulong = 0x801a542d;
++pub const TCGETA: ::c_ulong = 0x40127417;
++pub const TCSETA: ::c_ulong = 0x80127418;
++pub const TCSETAW: ::c_ulong = 0x80127419;
++pub const TCSETAF: ::c_ulong = 0x8012741c;
++pub const TCSBRK: ::c_ulong = 0x2000741d;
++pub const TCSBRKP: ::c_ulong = 0x5425;
++pub const FIONREAD: ::c_ulong = 0x4004667f;
++pub const TCXONC: ::c_ulong = 0x2000741e;
++pub const TCFLSH: ::c_ulong = 0x2000741f;
++pub const TIOCINQ: ::c_ulong = FIONREAD;
++
++pub const TIOCGPGRP: ::c_ulong = 0x40047477;
++pub const TIOCSPGRP: ::c_ulong = 0x80047476;
++pub const TIOCOUTQ: ::c_ulong = 0x40047473;
++pub const TIOCGWINSZ: ::c_ulong = 0x40087468;
++pub const TIOCSWINSZ: ::c_ulong = 0x80087467;
++
++// GUYC20201112 add RLIMIT_RSS ~ TIOCM_DSR
++pub const RLIMIT_RSS: ::c_int = 5;
++pub const RLIMIT_AS: ::c_int = 7;
++pub const RLIMIT_MEMLOCK: ::c_int = 9;
++pub const MAP_ANON: ::c_int = 0x0010;
++pub const MAP_ANONYMOUS: ::c_int = 0x0010;
++pub const MAP_DENYWRITE: ::c_int = 0x2000;
++pub const MAP_EXECUTABLE: ::c_int = 0x04000;
++pub const MAP_POPULATE: ::c_int = 0x20000;
++pub const MAP_NONBLOCK: ::c_int = 0x40000;
++pub const MAP_STACK: ::c_int = 0x80000;
++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 SOCK_STREAM: ::c_int = 1;
++pub const SOCK_DGRAM: ::c_int = 2;
++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 POSIX_FADV_DONTNEED: ::c_int = 4;
++pub const POSIX_FADV_NOREUSE: ::c_int = 5;
++pub const VEOF: usize = 0;
++pub const MAP_HUGETLB: ::c_int = 0x100000;
++pub const TCSANOW: ::c_int = 0;
++pub const TCSADRAIN: ::c_int = 1;
++pub const TCSAFLUSH: ::c_int = 2;
++pub const TIOCLINUX: ::c_ulong = 0x541C;
++pub const TIOCGSERIAL: ::c_ulong = 0x541E;
++pub const RTLD_DEEPBIND: ::c_int = 0x8;
++pub const RTLD_GLOBAL: ::c_int = 0x100;
++pub const RTLD_NOLOAD: ::c_int = 0x4;
++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_RNG: ::c_int = 0x080;
++pub const TIOCM_DSR: ::c_int = 0x100;
++
++pub const SYS_exit: ::c_long = 1;
++pub const SYS_fork: ::c_long = 2;
++pub const SYS_read: ::c_long = 3;
++pub const SYS_write: ::c_long = 4;
++pub const SYS_close: ::c_long = 6;
++pub const SYS_link: ::c_long = 9;
++pub const SYS_unlink: ::c_long = 10;
++pub const SYS_chdir: ::c_long = 12;
++pub const SYS_fchdir: ::c_long = 13;
++pub const SYS_mknod: ::c_long = 14;
++pub const SYS_chmod: ::c_long = 15;
++pub const SYS_chown: ::c_long = 16;
++pub const SYS_brk: ::c_long = 17;
++pub const SYS_lseek: ::c_long = 19;
++pub const SYS_getxpid: ::c_long = 20;
++pub const SYS_umount: ::c_long = 22;
++pub const SYS_umount2: ::c_long = SYS_umount;
++pub const SYS_setuid: ::c_long = 23;
++pub const SYS_getxuid: ::c_long = 24;
++pub const SYS_ptrace: ::c_long = 26;
++pub const SYS_access: ::c_long = 33;
++pub const SYS_sync: ::c_long = 36;
++pub const SYS_kill: ::c_long = 37;
++pub const SYS_setpgid: ::c_long = 39;
++pub const SYS_dup: ::c_long = 41;
++pub const SYS_pipe: ::c_long = 42;
++pub const SYS_open: ::c_long = 45;
++pub const SYS_getxgid: ::c_long = 47;
++pub const SYS_acct: ::c_long = 51;
++pub const SYS_sigpending: ::c_long = 52;
++pub const SYS_ioctl: ::c_long = 54;
++pub const SYS_symlink: ::c_long = 57;
++pub const SYS_readlink: ::c_long = 58;
++pub const SYS_execve: ::c_long = 59;
++pub const SYS_umask: ::c_long = 60;
++pub const SYS_chroot: ::c_long = 61;
++pub const SYS_getpgrp: ::c_long = 63;
++pub const SYS_vfork: ::c_long = 66;
++pub const SYS_stat: ::c_long = 67;
++pub const SYS_lstat: ::c_long = 68;
++pub const SYS_mmap: ::c_long = 71;
++pub const SYS_munmap: ::c_long = 73;
++pub const SYS_mprotect: ::c_long = 74;
++pub const SYS_madvise: ::c_long = 75;
++pub const SYS_vhangup: ::c_long = 76;
++pub const SYS_getgroups: ::c_long = 79;
++pub const SYS_setgroups: ::c_long = 80;
++pub const SYS_setpgrp: ::c_long = 82;
++pub const SYS_gethostname: ::c_long = 87;
++pub const SYS_sethostname: ::c_long = 88;
++pub const SYS_dup2: ::c_long = 90;
++pub const SYS_fstat: ::c_long = 91;
++pub const SYS_fcntl: ::c_long = 92;
++pub const SYS_poll: ::c_long = 94;
++pub const SYS_fsync: ::c_long = 95;
++pub const SYS_setpriority: ::c_long = 96;
++pub const SYS_socket: ::c_long = 97;
++pub const SYS_connect: ::c_long = 98;
++pub const SYS_accept: ::c_long = 99;
++pub const SYS_send: ::c_long = 101;
++pub const SYS_recv: ::c_long = 102;
++pub const SYS_sigreturn: ::c_long = 103;
++pub const SYS_bind: ::c_long = 104;
++pub const SYS_setsockopt: ::c_long = 105;
++pub const SYS_listen: ::c_long = 106;
++pub const SYS_sigsuspend: ::c_long = 111;
++pub const SYS_recvmsg: ::c_long = 113;
++pub const SYS_sendmsg: ::c_long = 114;
++pub const SYS_getsockopt: ::c_long = 118;
++pub const SYS_readv: ::c_long = 120;
++pub const SYS_writev: ::c_long = 121;
++pub const SYS_fchown: ::c_long = 123;
++pub const SYS_fchmod: ::c_long = 124;
++pub const SYS_recvfrom: ::c_long = 125;
++pub const SYS_setreuid: ::c_long = 126;
++pub const SYS_setregid: ::c_long = 127;
++pub const SYS_rename: ::c_long = 128;
++pub const SYS_truncate: ::c_long = 129;
++pub const SYS_ftruncate: ::c_long = 130;
++pub const SYS_flock: ::c_long = 131;
++pub const SYS_setgid: ::c_long = 132;
++pub const SYS_sendto: ::c_long = 133;
++pub const SYS_shutdown: ::c_long = 134;
++pub const SYS_socketpair: ::c_long = 135;
++pub const SYS_mkdir: ::c_long = 136;
++pub const SYS_rmdir: ::c_long = 137;
++pub const SYS_getpeername: ::c_long = 141;
++pub const SYS_getrlimit: ::c_long = 144;
++pub const SYS_setrlimit: ::c_long = 145;
++pub const SYS_setsid: ::c_long = 147;
++pub const SYS_quotactl: ::c_long = 148;
++pub const SYS_getsockname: ::c_long = 150;
++pub const SYS_sigaction: ::c_long = 156;
++pub const SYS_setdomainname: ::c_long = 166;
++pub const SYS_bpf: ::c_long = 170;
++pub const SYS_userfaultfd: ::c_long = 171;
++pub const SYS_membarrier: ::c_long = 172;
++pub const SYS_mlock2: ::c_long = 173;
++pub const SYS_getpid: ::c_long = 174;
++pub const SYS_getppid: ::c_long = 175;
++pub const SYS_getuid: ::c_long = 176;
++pub const SYS_geteuid: ::c_long = 177;
++pub const SYS_getgid: ::c_long = 178;
++pub const SYS_getegid: ::c_long = 179;
++pub const SYS_msgctl: ::c_long = 200;
++pub const SYS_msgget: ::c_long = 201;
++pub const SYS_msgrcv: ::c_long = 202;
++pub const SYS_msgsnd: ::c_long = 203;
++pub const SYS_semctl: ::c_long = 204;
++pub const SYS_semget: ::c_long = 205;
++pub const SYS_semop: ::c_long = 206;
++pub const SYS_lchown: ::c_long = 208;
++pub const SYS_shmctl: ::c_long = 210;
++pub const SYS_shmdt: ::c_long = 211;
++pub const SYS_shmget: ::c_long = 212;
++pub const SYS_msync: ::c_long = 217;
++pub const SYS_getpgid: ::c_long = 233;
++pub const SYS_getsid: ::c_long = 234;
++pub const SYS_sigaltstack: ::c_long = 235;
++pub const SYS_sysfs: ::c_long = 254;
++pub const SYS_pidfd_send_signal: ::c_long = 271;
++pub const SYS_pidfd_getfd: ::c_long = 285;
++pub const SYS_pidfd_open: ::c_long = 281;
++pub const SYS_getpriority: ::c_long = 298;
++pub const SYS_bdflush: ::c_long = 300;
++pub const SYS_mount: ::c_long = 302;
++pub const SYS_swapoff: ::c_long = 304;
++pub const SYS_getdents: ::c_long = 305;
++pub const SYS_create_module: ::c_long = 306;
++pub const SYS_init_module: ::c_long = 307;
++pub const SYS_delete_module: ::c_long = 308;
++pub const SYS_get_kernel_syms: ::c_long = 309;
++pub const SYS_syslog: ::c_long = 310;
++pub const SYS_reboot: ::c_long = 311;
++pub const SYS_clone: ::c_long = 312;
++pub const SYS_clone3: ::c_long = 282;
++pub const SYS_uselib: ::c_long = 313;
++pub const SYS_mlock: ::c_long = 314;
++pub const SYS_munlock: ::c_long = 315;
++pub const SYS_mlockall: ::c_long = 316;
++pub const SYS_munlockall: ::c_long = 317;
++pub const SYS_sysinfo: ::c_long = 318;
++pub const SYS_oldumount: ::c_long = 321;
++pub const SYS_swapon: ::c_long = 322;
++pub const SYS_times: ::c_long = 323;
++pub const SYS_personality: ::c_long = 324;
++pub const SYS_setfsuid: ::c_long = 325;
++pub const SYS_setfsgid: ::c_long = 326;
++pub const SYS_ustat: ::c_long = 327;
++pub const SYS_statfs: ::c_long = 328;
++pub const SYS_fstatfs: ::c_long = 329;
++pub const SYS_sched_setparam: ::c_long = 330;
++pub const SYS_sched_getparam: ::c_long = 331;
++pub const SYS_sched_setscheduler: ::c_long = 332;
++pub const SYS_sched_getscheduler: ::c_long = 333;
++pub const SYS_sched_yield: ::c_long = 334;
++pub const SYS_sched_get_priority_max: ::c_long = 335;
++pub const SYS_sched_get_priority_min: ::c_long = 336;
++pub const SYS_sched_rr_get_interval: ::c_long = 337;
++pub const SYS_afs_syscall: ::c_long = 338;
++pub const SYS_uname: ::c_long = 339;
++pub const SYS_nanosleep: ::c_long = 340;
++pub const SYS_mremap: ::c_long = 341;
++pub const SYS_nfsservctl: ::c_long = 342;
++pub const SYS_setresuid: ::c_long = 343;
++pub const SYS_getresuid: ::c_long = 344;
++pub const SYS_pciconfig_read: ::c_long = 345;
++pub const SYS_pciconfig_write: ::c_long = 346;
++pub const SYS_query_module: ::c_long = 347;
++pub const SYS_prctl: ::c_long = 348;
++pub const SYS_pread64: ::c_long = 349;
++pub const SYS_pwrite64: ::c_long = 350;
++pub const SYS_rt_sigreturn: ::c_long = 351;
++pub const SYS_rt_sigaction: ::c_long = 352;
++pub const SYS_rt_sigprocmask: ::c_long = 353;
++pub const SYS_rt_sigpending: ::c_long = 354;
++pub const SYS_rt_sigtimedwait: ::c_long = 355;
++pub const SYS_rt_sigqueueinfo: ::c_long = 356;
++pub const SYS_rt_sigsuspend: ::c_long = 357;
++pub const SYS_select: ::c_long = 358;
++pub const SYS_gettimeofday: ::c_long = 359;
++pub const SYS_settimeofday: ::c_long = 360;
++pub const SYS_getitimer: ::c_long = 361;
++pub const SYS_setitimer: ::c_long = 362;
++pub const SYS_utimes: ::c_long = 363;
++pub const SYS_getrusage: ::c_long = 364;
++pub const SYS_wait4: ::c_long = 365;
++pub const SYS_adjtimex: ::c_long = 366;
++pub const SYS_getcwd: ::c_long = 367;
++pub const SYS_capget: ::c_long = 368;
++pub const SYS_capset: ::c_long = 369;
++pub const SYS_sendfile: ::c_long = 370;
++pub const SYS_setresgid: ::c_long = 371;
++pub const SYS_getresgid: ::c_long = 372;
++pub const SYS_dipc: ::c_long = 373;
++pub const SYS_pivot_root: ::c_long = 374;
++pub const SYS_mincore: ::c_long = 375;
++pub const SYS_pciconfig_iobase: ::c_long = 376;
++pub const SYS_getdents64: ::c_long = 377;
++pub const SYS_gettid: ::c_long = 378;
++pub const SYS_readahead: ::c_long = 379;
++pub const SYS_tkill: ::c_long = 381;
++pub const SYS_setxattr: ::c_long = 382;
++pub const SYS_lsetxattr: ::c_long = 383;
++pub const SYS_fsetxattr: ::c_long = 384;
++pub const SYS_getxattr: ::c_long = 385;
++pub const SYS_lgetxattr: ::c_long = 386;
++pub const SYS_fgetxattr: ::c_long = 387;
++pub const SYS_listxattr: ::c_long = 388;
++pub const SYS_llistxattr: ::c_long = 389;
++pub const SYS_flistxattr: ::c_long = 390;
++pub const SYS_removexattr: ::c_long = 391;
++pub const SYS_lremovexattr: ::c_long = 392;
++pub const SYS_fremovexattr: ::c_long = 393;
++pub const SYS_futex: ::c_long = 394;
++pub const SYS_sched_setaffinity: ::c_long = 395;
++pub const SYS_sched_getaffinity: ::c_long = 396;
++pub const SYS_tuxcall: ::c_long = 397;
++pub const SYS_io_setup: ::c_long = 398;
++pub const SYS_io_destroy: ::c_long = 399;
++pub const SYS_io_getevents: ::c_long = 400;
++pub const SYS_io_submit: ::c_long = 401;
++pub const SYS_io_cancel: ::c_long = 402;
++pub const SYS_exit_group: ::c_long = 405;
++pub const SYS_lookup_dcookie: ::c_long = 406;
++pub const SYS_epoll_create: ::c_long = 407;
++pub const SYS_epoll_ctl: ::c_long = 408;
++pub const SYS_epoll_wait: ::c_long = 409;
++pub const SYS_remap_file_pages: ::c_long = 410;
++pub const SYS_set_tid_address: ::c_long = 411;
++pub const SYS_restart_syscall: ::c_long = 412;
++pub const SYS_fadvise64: ::c_long = 413;
++pub const SYS_timer_create: ::c_long = 414;
++pub const SYS_timer_settime: ::c_long = 415;
++pub const SYS_timer_gettime: ::c_long = 416;
++pub const SYS_timer_getoverrun: ::c_long = 417;
++pub const SYS_timer_delete: ::c_long = 418;
++pub const SYS_clock_settime: ::c_long = 419;
++pub const SYS_clock_gettime: ::c_long = 420;
++pub const SYS_clock_getres: ::c_long = 421;
++pub const SYS_clock_nanosleep: ::c_long = 422;
++pub const SYS_semtimedop: ::c_long = 423;
++pub const SYS_tgkill: ::c_long = 424;
++pub const SYS_stat64: ::c_long = 425;
++pub const SYS_lstat64: ::c_long = 426;
++pub const SYS_fstat64: ::c_long = 427;
++pub const SYS_vserver: ::c_long = 428;
++pub const SYS_mbind: ::c_long = 429;
++pub const SYS_get_mempolicy: ::c_long = 430;
++pub const SYS_set_mempolicy: ::c_long = 431;
++pub const SYS_mq_open: ::c_long = 432;
++pub const SYS_mq_unlink: ::c_long = 433;
++pub const SYS_mq_timedsend: ::c_long = 434;
++pub const SYS_mq_timedreceive: ::c_long = 435;
++pub const SYS_mq_notify: ::c_long = 436;
++pub const SYS_mq_getsetattr: ::c_long = 437;
++pub const SYS_waitid: ::c_long = 438;
++pub const SYS_add_key: ::c_long = 439;
++pub const SYS_request_key: ::c_long = 440;
++pub const SYS_keyctl: ::c_long = 441;
++pub const SYS_ioprio_set: ::c_long = 442;
++pub const SYS_ioprio_get: ::c_long = 443;
++pub const SYS_inotify_init: ::c_long = 444;
++pub const SYS_inotify_add_watch: ::c_long = 445;
++pub const SYS_inotify_rm_watch: ::c_long = 446;
++pub const SYS_fdatasync: ::c_long = 447;
++pub const SYS_kexec_load: ::c_long = 448;
++pub const SYS_migrate_pages: ::c_long = 449;
++pub const SYS_openat: ::c_long = 450;
++pub const SYS_mkdirat: ::c_long = 451;
++pub const SYS_mknodat: ::c_long = 452;
++pub const SYS_fchownat: ::c_long = 453;
++pub const SYS_futimesat: ::c_long = 454;
++pub const SYS_fstatat64: ::c_long = 455;
++pub const SYS_unlinkat: ::c_long = 456;
++pub const SYS_renameat: ::c_long = 457;
++pub const SYS_linkat: ::c_long = 458;
++pub const SYS_symlinkat: ::c_long = 459;
++pub const SYS_readlinkat: ::c_long = 460;
++pub const SYS_fchmodat: ::c_long = 461;
++pub const SYS_faccessat: ::c_long = 462;
++pub const SYS_pselect6: ::c_long = 463;
++pub const SYS_ppoll: ::c_long = 464;
++pub const SYS_unshare: ::c_long = 465;
++pub const SYS_set_robust_list: ::c_long = 466;
++pub const SYS_get_robust_list: ::c_long = 467;
++pub const SYS_splice: ::c_long = 468;
++pub const SYS_sync_file_range: ::c_long = 469;
++pub const SYS_tee: ::c_long = 470;
++pub const SYS_vmsplice: ::c_long = 471;
++pub const SYS_move_pages: ::c_long = 472;
++pub const SYS_getcpu: ::c_long = 473;
++pub const SYS_epoll_pwait: ::c_long = 474;
++pub const SYS_utimensat: ::c_long = 475;
++pub const SYS_signalfd: ::c_long = 476;
++pub const SYS_timerfd: ::c_long = 477;
++pub const SYS_eventfd: ::c_long = 478;
++pub const SYS_recvmmsg: ::c_long = 479;
++pub const SYS_fallocate: ::c_long = 480;
++pub const SYS_timerfd_create: ::c_long = 481;
++pub const SYS_timerfd_settime: ::c_long = 482;
++pub const SYS_timerfd_gettime: ::c_long = 483;
++pub const SYS_signalfd4: ::c_long = 484;
++pub const SYS_eventfd2: ::c_long = 485;
++pub const SYS_epoll_create1: ::c_long = 486;
++pub const SYS_dup3: ::c_long = 487;
++pub const SYS_pipe2: ::c_long = 488;
++pub const SYS_inotify_init1: ::c_long = 489;
++pub const SYS_preadv: ::c_long = 490;
++pub const SYS_pwritev: ::c_long = 491;
++pub const SYS_rt_tgsigqueueinfo: ::c_long = 492;
++pub const SYS_perf_event_open: ::c_long = 493;
++pub const SYS_fanotify_init: ::c_long = 494;
++pub const SYS_fanotify_mark: ::c_long = 495;
++pub const SYS_prlimit64: ::c_long = 496;
++pub const SYS_name_to_handle_at: ::c_long = 497;
++pub const SYS_open_by_handle_at: ::c_long = 498;
++pub const SYS_clock_adjtime: ::c_long = 499;
++pub const SYS_syncfs: ::c_long = 500;
++pub const SYS_setns: ::c_long = 501;
++pub const SYS_accept4: ::c_long = 502;
++pub const SYS_sendmmsg: ::c_long = 503;
++pub const SYS_process_vm_readv: ::c_long = 504;
++pub const SYS_process_vm_writev: ::c_long = 505;
++pub const SYS_kcmp: ::c_long = 506;
++pub const SYS_finit_module: ::c_long = 507;
++pub const SYS_sched_setattr: ::c_long = 508;
++pub const SYS_sched_getattr: ::c_long = 509;
++pub const SYS_renameat2: ::c_long = 510;
++pub const SYS_getrandom: ::c_long = 511;
++pub const SYS_memfd_create: ::c_long = 512;
++pub const SYS_execveat: ::c_long = 513;
++pub const SYS_seccomp: ::c_long = 514;
++pub const SYS_copy_file_range: ::c_long = 515;
++pub const SYS_preadv2: ::c_long = 516;
++pub const SYS_pwritev2: ::c_long = 517;
++pub const SYS_statx: ::c_long = 518;
++
++pub const F_OFD_GETLK: ::c_int = 36;
++pub const F_OFD_SETLK: ::c_int = 37;
++pub const F_OFD_SETLKW: ::c_int = 38;
++
++#[link(name = "util")]
++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;
++}
+diff --git a/vendor/libc-0.2.157/src/unix/linux_like/linux/gnu/mod.rs b/vendor/libc-0.2.157/src/unix/linux_like/linux/gnu/mod.rs
+index d6e5eb69c7f..8b31769639f 100644
+--- a/vendor/libc-0.2.157/src/unix/linux_like/linux/gnu/mod.rs
++++ b/vendor/libc-0.2.157/src/unix/linux_like/linux/gnu/mod.rs
+@@ -5,6 +5,9 @@
+ pub type regoff_t = ::c_int;
+ pub type __kernel_rwf_t = ::c_int;
+
++#[cfg(target_arch = "sw64")]
++pub type termios2 = termios;
++
+ cfg_if! {
+ if #[cfg(doc)] {
+ // Used in `linux::arch` to define ioctl constants.
+@@ -106,12 +109,16 @@ pub struct cmsghdr {
+ 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,
++ #[cfg(target_arch = "sw64")]
++ pub c_cc: [::cc_t; ::NCCS],
+ pub c_line: ::cc_t,
++ #[cfg(not(target_arch = "sw64"))]
+ pub c_cc: [::cc_t; ::NCCS],
+ #[cfg(not(any(
+ target_arch = "sparc",
+@@ -570,12 +577,14 @@ pub struct utmpx {
+ #[cfg(any(target_arch = "aarch64",
+ target_arch = "s390x",
+ target_arch = "loongarch64",
++ target_arch = "sw64",
+ 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",
++ target_arch = "sw64",
+ all(target_pointer_width = "32",
+ not(target_arch = "x86_64"))))]
+ pub ut_tv: ::timeval,
+@@ -583,12 +592,14 @@ pub struct utmpx {
+ #[cfg(not(any(target_arch = "aarch64",
+ target_arch = "s390x",
+ target_arch = "loongarch64",
++ target_arch = "sw64",
+ 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",
++ target_arch = "sw64",
+ all(target_pointer_width = "32",
+ not(target_arch = "x86_64")))))]
+ pub ut_tv: __timeval,
+@@ -772,6 +783,9 @@ fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
+ pub const RTLD_DI_TLS_MODID: ::c_int = 9;
+ pub const RTLD_DI_TLS_DATA: ::c_int = 10;
+
++#[cfg(target_arch = "sw64")]
++pub const SOCK_NONBLOCK: ::c_int = 0x40000000;
++#[cfg(not(target_arch = "sw64"))]
+ pub const SOCK_NONBLOCK: ::c_int = O_NONBLOCK;
+ pub const PIDFD_NONBLOCK: ::c_uint = O_NONBLOCK as ::c_uint;
+
+@@ -834,6 +848,9 @@ fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
+ pub const TMP_MAX: ::c_uint = 238328;
+ pub const FOPEN_MAX: ::c_uint = 16;
+ pub const FILENAME_MAX: ::c_uint = 4096;
++#[cfg(target_arch = "sw64")]
++pub const POSIX_MADV_DONTNEED: ::c_int = 6;
++#[cfg(not(target_arch = "sw64"))]
+ pub const POSIX_MADV_DONTNEED: ::c_int = 4;
+ pub const _CS_GNU_LIBC_VERSION: ::c_int = 2;
+ pub const _CS_GNU_LIBPTHREAD_VERSION: ::c_int = 3;
+@@ -1253,7 +1270,8 @@ fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
+ pub const PTHREAD_STACK_MIN: ::size_t = 16384;
+ } else if #[cfg(any(
+ target_arch = "sparc",
+- target_arch = "sparc64"
++ target_arch = "sparc64",
++ target_arch = "sw64"
+ ))] {
+ pub const PTHREAD_STACK_MIN: ::size_t = 0x6000;
+ } else {
+@@ -1559,6 +1577,7 @@ pub fn execveat(
+ target_arch = "aarch64",
+ target_arch = "powerpc64",
+ target_arch = "mips64",
++ target_arch = "sw64",
+ target_arch = "mips64r6",
+ target_arch = "s390x",
+ target_arch = "sparc64",
+diff --git a/vendor/libc-0.2.157/src/unix/linux_like/linux/mod.rs b/vendor/libc-0.2.157/src/unix/linux_like/linux/mod.rs
+index 779faa81ff1..6280b5ceb0e 100644
+--- a/vendor/libc-0.2.157/src/unix/linux_like/linux/mod.rs
++++ b/vendor/libc-0.2.157/src/unix/linux_like/linux/mod.rs
+@@ -6,6 +6,9 @@
+ pub type mode_t = u32;
+ pub type ino64_t = u64;
+ pub type off64_t = i64;
++#[cfg(target_arch = "sw64")]
++pub type blkcnt64_t = u64;
++#[cfg(not(target_arch = "sw64"))]
+ pub type blkcnt64_t = i64;
+ pub type rlim64_t = u64;
+ pub type mqd_t = ::c_int;
+@@ -3718,6 +3721,9 @@ fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
+ pub const MAP_SHARED_VALIDATE: ::c_int = 0x3;
+
+ // include/uapi/asm-generic/mman-common.h
++#[cfg(target_arch = "sw64")]
++pub const MAP_FIXED_NOREPLACE: ::c_int = 0x200000;
++#[cfg(not(target_arch = "sw64"))]
+ pub const MAP_FIXED_NOREPLACE: ::c_int = 0x100000;
+ pub const MLOCK_ONFAULT: ::c_uint = 0x01;
+
+@@ -4247,6 +4253,9 @@ pub fn FUTEX_OP(op: ::c_int, oparg: ::c_int, cmp: ::c_int, cmparg: ::c_int) -> :
+ pub const ENOEXEC: ::c_int = 8;
+ pub const EBADF: ::c_int = 9;
+ pub const ECHILD: ::c_int = 10;
++#[cfg(target_arch = "sw64")]
++pub const EAGAIN: ::c_int = 35;
++#[cfg(not(target_arch = "sw64"))]
+ pub const EAGAIN: ::c_int = 11;
+ pub const ENOMEM: ::c_int = 12;
+ pub const EACCES: ::c_int = 13;
+diff --git a/vendor/libc-0.2.157/src/unix/linux_like/linux/no_align.rs b/vendor/libc-0.2.157/src/unix/linux_like/linux/no_align.rs
+index 328a5cc4842..b917a868432 100644
+--- a/vendor/libc-0.2.157/src/unix/linux_like/linux/no_align.rs
++++ b/vendor/libc-0.2.157/src/unix/linux_like/linux/no_align.rs
+@@ -5,6 +5,7 @@ pub struct pthread_mutexattr_t {
+ #[cfg(any(target_arch = "x86_64",
+ target_arch = "powerpc64",
+ target_arch = "mips64",
++ target_arch = "sw64",
+ target_arch = "mips64r6",
+ target_arch = "s390x",
+ target_arch = "sparc64",
+@@ -17,6 +18,7 @@ pub struct pthread_mutexattr_t {
+ #[cfg(not(any(target_arch = "x86_64",
+ target_arch = "powerpc64",
+ target_arch = "mips64",
++ target_arch = "sw64",
+ target_arch = "mips64r6",
+ target_arch = "s390x",
+ target_arch = "sparc64",
+diff --git a/vendor/libc-0.2.157/src/unix/linux_like/mod.rs b/vendor/libc-0.2.157/src/unix/linux_like/mod.rs
+index 749c8a16d01..640e4665ec8 100644
+--- a/vendor/libc-0.2.157/src/unix/linux_like/mod.rs
++++ b/vendor/libc-0.2.157/src/unix/linux_like/mod.rs
+@@ -597,13 +597,22 @@ fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
+ pub const MAP_FILE: ::c_int = 0x0000;
+ pub const MAP_SHARED: ::c_int = 0x0001;
+ pub const MAP_PRIVATE: ::c_int = 0x0002;
++#[cfg(target_arch = "sw64")]
++pub const MAP_FIXED: ::c_int = 0x0100;
++#[cfg(not(target_arch = "sw64"))]
+ 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;
++#[cfg(target_arch = "sw64")]
++pub const MS_INVALIDATE: ::c_int = 0x0004;
++#[cfg(not(target_arch = "sw64"))]
+ pub const MS_INVALIDATE: ::c_int = 0x0002;
++#[cfg(target_arch = "sw64")]
++pub const MS_SYNC: ::c_int = 0x0002;
++#[cfg(not(target_arch = "sw64"))]
+ pub const MS_SYNC: ::c_int = 0x0004;
+
+ // MS_ flags for mount(2)
+@@ -647,6 +656,9 @@ fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
+ pub const MADV_RANDOM: ::c_int = 1;
+ pub const MADV_SEQUENTIAL: ::c_int = 2;
+ pub const MADV_WILLNEED: ::c_int = 3;
++#[cfg(target_arch = "sw64")]
++pub const MADV_DONTNEED: ::c_int = 6;
++#[cfg(not(target_arch = "sw64"))]
+ pub const MADV_DONTNEED: ::c_int = 4;
+ pub const MADV_FREE: ::c_int = 8;
+ pub const MADV_REMOVE: ::c_int = 9;
+@@ -1126,11 +1138,22 @@ fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
+ 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;
++cfg_if! {
++ if #[cfg(target_arch = "sw64")] {
++ pub const VERASE: usize = 3;
++ pub const VKILL: usize = 5;
++ pub const VINTR: usize = 8;
++ pub const VQUIT: usize = 9;
++ pub const VLNEXT: usize = 14;
++ } else {
++ 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;
+diff --git a/vendor/libc-0.2.158/src/unix/linux_like/linux/align.rs b/vendor/libc-0.2.158/src/unix/linux_like/linux/align.rs
+index 1036e23dc8f..41d5c32f5bf 100644
+--- a/vendor/libc-0.2.158/src/unix/linux_like/linux/align.rs
++++ b/vendor/libc-0.2.158/src/unix/linux_like/linux/align.rs
+@@ -10,6 +10,7 @@ macro_rules! expand_align {
+ target_arch = "sparc64",
+ target_arch = "aarch64",
+ target_arch = "riscv64",
++ target_arch = "sw64",
+ target_arch = "riscv32",
+ target_arch = "loongarch64"),
+ repr(align(4)))]
+@@ -22,6 +23,7 @@ macro_rules! expand_align {
+ target_arch = "sparc64",
+ target_arch = "aarch64",
+ target_arch = "riscv64",
++ target_arch = "sw64",
+ target_arch = "riscv32",
+ target_arch = "loongarch64")),
+ repr(align(8)))]
+diff --git a/vendor/libc-0.2.158/src/unix/linux_like/linux/arch/mod.rs b/vendor/libc-0.2.158/src/unix/linux_like/linux/arch/mod.rs
+index 7f6ddc5a764..db55a9202dd 100644
+--- a/vendor/libc-0.2.158/src/unix/linux_like/linux/arch/mod.rs
++++ b/vendor/libc-0.2.158/src/unix/linux_like/linux/arch/mod.rs
+@@ -11,6 +11,9 @@
+ } else if #[cfg(any(target_arch = "sparc", target_arch = "sparc64"))] {
+ mod sparc;
+ pub use self::sparc::*;
++ } else if #[cfg(target_arch = "sw64")] {
++ mod sw64;
++ pub use self::sw64::*;
+ } else {
+ mod generic;
+ pub use self::generic::*;
+diff --git a/vendor/libc-0.2.158/src/unix/linux_like/linux/arch/sw64/mod.rs b/vendor/libc-0.2.158/src/unix/linux_like/linux/arch/sw64/mod.rs
+new file mode 100644
+index 00000000000..74da8a98fdd
+--- /dev/null
++++ b/vendor/libc-0.2.158/src/unix/linux_like/linux/arch/sw64/mod.rs
+@@ -0,0 +1,120 @@
++//s! {
++// pub struct ktermios {
++// pub c_iflag: ::tcflag_t,
++// pub c_oflag: ::tcflag_t,
++// pub c_cflag: ::tcflag_t,
++// pub c_lflag: ::tcflag_t,
++// pub c_cc: [::cc_t; 19],
++// pub c_line: ::cc_t,
++// pub c_ispeed: ::speed_t,
++// pub c_ospeed: ::speed_t,
++// }
++//}
++//pub type termios2 = termios;
++pub const SOL_SOCKET: ::c_int = 0xffff;
++pub const SO_REUSEADDR: ::c_int = 0x0004;
++pub const SO_TYPE: ::c_int = 0x1008;
++pub const SO_ERROR: ::c_int = 0x1007;
++pub const SO_DONTROUTE: ::c_int = 0x0010;
++pub const SO_BROADCAST: ::c_int = 0x0020;
++pub const SO_SNDBUF: ::c_int = 0x1001;
++pub const SO_RCVBUF: ::c_int = 0x1002;
++pub const SO_SNDBUFFORCE: ::c_int = 0x100a;
++pub const SO_RCVBUFFORCE: ::c_int = 0x100b;
++pub const SO_KEEPALIVE: ::c_int = 0x0008;
++pub const SO_OOBINLINE: ::c_int = 0x0100;
++pub const SO_NO_CHECK: ::c_int = 11;
++pub const SO_PRIORITY: ::c_int = 12;
++
++pub const SO_LINGER: ::c_int = 0x0080;
++pub const SO_BSDCOMPAT: ::c_int = 14;
++pub const SO_REUSEPORT: ::c_int = 0x0200;
++pub const SO_PASSCRED: ::c_int = 17;
++pub const SO_PEERCRED: ::c_int = 18;
++pub const SO_RCVLOWAT: ::c_int = 0x1010;
++pub const SO_SNDLOWAT: ::c_int = 0x1011;
++pub const SO_RCVTIMEO: ::c_int = 0x1012;
++pub const SO_SNDTIMEO: ::c_int = 0x1013;
++
++pub const SO_SECURITY_AUTHENTICATION: ::c_int = 19;
++pub const SO_SECURITY_ENCRYPTION_TRANSPORT: ::c_int = 20;
++pub const SO_SECURITY_ENCRYPTION_NETWORK: ::c_int = 21;
++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_ACCEPTCONN: ::c_int = 0x1014;
++
++pub const SO_PEERSEC: ::c_int = 30;
++pub const SO_PASSSEC: ::c_int = 34;
++pub const SO_TIMESTAMPNS: ::c_int = 35;
++pub const SCM_TIMESTAMPNS: ::c_int = SO_TIMESTAMPNS;
++pub const SO_MARK: ::c_int = 36;
++pub const SO_PROTOCOL: ::c_int = 0x1028;
++pub const SO_DOMAIN: ::c_int = 0x1029;
++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 SCM_TIMESTAMPING: ::c_int = SO_TIMESTAMPING;
++pub const SO_TIMESTAMPING: ::c_int = 37;
++pub const RLIM_INFINITY: ::rlim_t = !0;
++
++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_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 = 16;
++pub const RLIM_NLIMITS: ::__rlimit_resource_t = RLIMIT_NLIMITS;
++
++pub const BLKIOMIN: ::Ioctl = 0x20001278;
++pub const BLKIOOPT: ::Ioctl = 0x20001279;
++pub const BLKSSZGET: ::Ioctl = 0x20001268;
++pub const BLKPBSZGET: ::Ioctl = 0x2000127B;
++pub const FIONCLEX: ::Ioctl = 0x20006602;
++//pub const IBSHIFT: ::tcflag_t = 16;
++
++pub const TIOCM_LE: ::c_int = 0x1;
++pub const TIOCM_DTR: ::c_int = 0x002;
++pub const TIOCM_RTS: ::c_int = 0x004;
++//pub const TIOCM_CAR: ::c_int = 0x040;
++pub const TIOCM_CD: ::c_int = 0x040;
++//pub const TIOCM_RNG: ::c_int = 0x80;
++pub const TIOCM_RI: ::c_int = 0x80;
++
++pub const FS_IOC_GETFLAGS: ::Ioctl = 0x80086601;
++pub const FS_IOC_SETFLAGS: ::Ioctl = 0x40086602;
++pub const FS_IOC_GETVERSION: ::Ioctl = 0x80087601;
++pub const FS_IOC_SETVERSION: ::Ioctl = 0x40087602;
++pub const FS_IOC32_GETFLAGS: ::Ioctl = 0x80046601;
++pub const FS_IOC32_SETFLAGS: ::Ioctl = 0x40046602;
++pub const FS_IOC32_GETVERSION: ::Ioctl = 0x80047601;
++pub const FS_IOC32_SETVERSION: ::Ioctl = 0x40047602;
++
++pub const FICLONE: ::c_ulong = 0x40049409;
++pub const FICLONERANGE: ::c_ulong = 0x4020940D;
++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;
+diff --git a/vendor/libc-0.2.158/src/unix/linux_like/linux/gnu/b64/mod.rs b/vendor/libc-0.2.158/src/unix/linux_like/linux/gnu/b64/mod.rs
+index ff394e33a21..24b76720395 100644
+--- a/vendor/libc-0.2.158/src/unix/linux_like/linux/gnu/b64/mod.rs
++++ b/vendor/libc-0.2.158/src/unix/linux_like/linux/gnu/b64/mod.rs
+@@ -2,11 +2,20 @@
+
+ pub type ino_t = u64;
+ pub type off_t = i64;
++#[cfg(target_arch = "sw64")]
++pub type blkcnt_t = u32;
++#[cfg(not(target_arch = "sw64"))]
+ pub type blkcnt_t = i64;
+ pub type shmatt_t = u64;
+ pub type msgqnum_t = u64;
+ pub type msglen_t = u64;
++#[cfg(target_arch = "sw64")]
++pub type fsblkcnt_t = i32;
++#[cfg(not(target_arch = "sw64"))]
+ pub type fsblkcnt_t = u64;
++#[cfg(target_arch = "sw64")]
++pub type fsfilcnt_t = u32;
++#[cfg(not(target_arch = "sw64"))]
+ pub type fsfilcnt_t = u64;
+ pub type rlim_t = u64;
+ #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
+@@ -20,6 +29,9 @@
+ pub type time_t = i32;
+ pub type __fsword_t = i32;
+ } else {
++ #[cfg(target_arch = "sw64")]
++ pub type __fsword_t = i32;
++ #[cfg(not(target_arch = "sw64"))]
+ pub type __fsword_t = i64;
+ pub type clock_t = i64;
+ pub type time_t = i64;
+@@ -71,6 +83,7 @@ pub struct semid_ds {
+ #[cfg(not(any(
+ target_arch = "aarch64",
+ target_arch = "loongarch64",
++ target_arch = "sw64",
+ target_arch = "mips64",
+ target_arch = "mips64r6",
+ target_arch = "powerpc64",
+@@ -82,6 +95,7 @@ pub struct semid_ds {
+ target_arch = "aarch64",
+ target_arch = "loongarch64",
+ target_arch = "mips64",
++ target_arch = "sw64",
+ target_arch = "mips64r6",
+ target_arch = "powerpc64",
+ target_arch = "riscv64",
+@@ -122,6 +136,9 @@ pub struct semid_ds {
+ } else if #[cfg(any(target_arch = "loongarch64"))] {
+ mod loongarch64;
+ pub use self::loongarch64::*;
++ } else if #[cfg(any(target_arch = "sw64"))] {
++ mod sw64;
++ pub use self::sw64::*;
+ } else {
+ // Unknown target_arch
+ }
+diff --git a/vendor/libc-0.2.158/src/unix/linux_like/linux/gnu/b64/sw64.rs b/vendor/libc-0.2.158/src/unix/linux_like/linux/gnu/b64/sw64.rs
+new file mode 100644
+index 00000000000..1ebef43e2dd
+--- /dev/null
++++ b/vendor/libc-0.2.158/src/unix/linux_like/linux/gnu/b64/sw64.rs
+@@ -0,0 +1,943 @@
++//! SW64-specific definitions for 64-bit linux-like values
++
++use pthread_mutex_t;
++
++pub type blksize_t = u32;
++pub type c_char = i8;
++pub type c_long = i64;
++pub type c_ulong = u64;
++pub type nlink_t = u32;
++pub type suseconds_t = i64;
++pub type wchar_t = i32;
++pub type __u64 = ::c_ulong;
++pub type __s64 = ::c_long;
++
++s! {
++ pub struct stat {
++ pub st_dev: ::dev_t,
++ pub st_ino: ::ino64_t,
++ pub st_rdev: ::dev_t,
++ pub st_size: ::off_t,
++ pub st_blocks: ::blkcnt_t,
++ __pad1: ::c_int,
++
++ pub st_mode: ::mode_t,
++ pub st_uid: ::uid_t,
++ pub st_gid: ::gid_t,
++ pub st_blksize: ::blksize_t,
++ pub st_nlink: ::nlink_t,
++ __pad2: ::c_int,
++ pub st_atime: ::time_t,
++ pub st_atime_nsec: ::c_long,
++ pub st_mtime: ::time_t,
++ pub st_mtime_nsec: ::c_long,
++ pub st_ctime: ::time_t,
++ pub st_ctime_nsec: ::c_long,
++ __glibc_reserved: [::c_long; 3],
++ }
++
++ pub struct stat64 {
++ pub st_dev: ::dev_t,
++ pub st_ino: ::ino64_t,
++ pub st_rdev: ::dev_t,
++ pub st_size: ::off64_t,
++ pub st_blocks: ::blkcnt64_t,
++
++ pub st_mode: ::mode_t,
++ pub st_uid: ::uid_t,
++ pub st_gid: ::gid_t,
++ pub st_blksize: ::blksize_t,
++ pub st_nlink: ::nlink_t,
++ __pad0: ::c_int,
++
++ pub st_atime: ::time_t,
++ pub st_atime_nsec: ::c_long,
++ pub st_mtime: ::time_t,
++ pub st_mtime_nsec: ::c_long,
++ pub st_ctime: ::time_t,
++ pub st_ctime_nsec: ::c_long,
++ __unused: [::c_long; 3],
++ }
++
++ pub struct statfs64 {
++ pub f_type: ::c_long,
++ pub f_bsize: ::c_long,
++ pub f_blocks: ::c_long,
++ pub f_bfree: ::c_long,
++ pub f_bavail: ::c_long,
++ pub f_files: ::c_ulong,
++ pub f_ffree: ::c_ulong,
++ pub f_fsid: ::fsid_t,
++ pub f_namelen: ::c_long,
++ pub f_frsize: ::c_long,
++ pub f_flags: ::c_long,
++ pub f_spare: [::c_long; 4],
++ }
++
++ 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 struct statvfs64 {
++ pub f_bsize: ::c_ulong,
++ pub f_frsize: ::c_ulong,
++ pub f_blocks: ::c_long,
++ pub f_bfree: ::c_long,
++ pub f_bavail: ::c_long,
++ pub f_files: ::c_ulong,
++ pub f_ffree: ::c_ulong,
++ pub f_favail: ::c_ulong,
++ 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 {
++ __size: [::c_ulong; 7]
++ }
++
++ // GUYC20201103 add sigaction stack_t siginfo_t
++
++ pub struct sigaction {
++ pub sa_sigaction: ::sighandler_t,
++ pub sa_mask: ::sigset_t,
++ pub sa_flags: ::c_int,
++ }
++
++ pub struct stack_t {
++ pub ss_sp: *mut ::c_void,
++ pub ss_flags: ::c_int,
++ pub ss_size: ::size_t
++ }
++
++ pub struct siginfo_t {
++ pub si_signo: ::c_int,
++ pub si_errno: ::c_int,
++ pub si_code: ::c_int,
++ pub _pad: [::c_int; 29],
++ _align: [usize; 0],
++ }
++
++ // GUYC20201103 add flock
++
++ 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 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_uint,
++ pub __seq: ::c_ushort,
++ __pad1: ::c_ushort,
++ __unused1: ::c_ulong,
++ __unused2: ::c_ulong
++ }
++
++ 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: ::c_ulong,
++ __unused5: ::c_ulong
++ }
++
++ // GUYC20210303 copy from 1.34.2 libc/src/unix/notbsd/linux/other/mod.rs
++ pub struct statfs {
++ pub f_type: ::c_long,
++ pub f_bsize: ::c_long,
++ pub f_blocks: ::c_long,
++ pub f_bfree: ::c_long,
++ pub f_bavail: ::c_long,
++
++ pub f_files: ::c_long,
++ pub f_ffree: ::c_long,
++ pub f_fsid: ::fsid_t,
++
++ pub f_namelen: ::c_long,
++ pub f_frsize: ::c_long,
++ pub f_flags: ::c_long,
++ f_spare: [::c_long; 4],
++ }
++}
++
++pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4;
++pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4;
++pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4;
++pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32;
++pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40;
++pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56;
++
++align_const! {
++ 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,
++ ],
++ };
++ 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,
++ ],
++ };
++ 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,
++ ],
++ };
++}
++
++pub const TIOCGSOFTCAR: ::c_ulong = 0x5419;
++pub const TIOCSSOFTCAR: ::c_ulong = 0x541A;
++
++pub const RLIMIT_NOFILE: ::c_uint = 6;
++pub const RLIMIT_NPROC: ::c_int = 8;
++
++pub const O_APPEND: ::c_int = 0o00010;
++pub const O_CREAT: ::c_int = 0o01000;
++pub const O_EXCL: ::c_int = 0o04000;
++pub const O_NOCTTY: ::c_int = 0o010000;
++pub const O_DIRECT: ::c_int = 0o02000000;
++pub const O_DIRECTORY: ::c_int = 0o0100000;
++pub const O_NOFOLLOW: ::c_int = 0o0200000;
++pub const O_NONBLOCK: ::c_int = 0o00004;
++pub const O_CLOEXEC: ::c_int = 0o010000000;
++
++pub const O_DSYNC: ::c_int = 0o040000;
++pub const O_SYNC: ::c_int = 0o020000000 | O_DSYNC;
++pub const O_RSYNC: ::c_int = O_SYNC; // TODO
++pub const O_FSYNC: ::c_int = O_SYNC; // TODO
++
++pub const O_NOATIME: ::c_int = 0o04000000;
++pub const O_PATH: ::c_int = 0o040000000;
++pub const O_TMPFILE: ::c_int = 0o0100100000;
++
++pub const MAP_GROWSDOWN: ::c_int = 0x01000;
++
++pub const EDEADLK: ::c_int = 11;
++pub const ENAMETOOLONG: ::c_int = 63;
++pub const ENOLCK: ::c_int = 77;
++pub const ENOSYS: ::c_int = 78;
++pub const ENOTEMPTY: ::c_int = 66;
++pub const ELOOP: ::c_int = 62;
++
++pub const ENOMSG: ::c_int = 80;
++pub const EIDRM: ::c_int = 81;
++pub const ECHRNG: ::c_int = 88;
++pub const EL2NSYNC: ::c_int = 89;
++pub const EL3HLT: ::c_int = 90;
++pub const EL3RST: ::c_int = 91;
++pub const ELNRNG: ::c_int = 93;
++pub const EUNATCH: ::c_int = 94;
++pub const ENOCSI: ::c_int = 95;
++pub const EL2HLT: ::c_int = 96;
++pub const EBADE: ::c_int = 97;
++pub const EBADR: ::c_int = 98;
++pub const EXFULL: ::c_int = 99;
++pub const ENOANO: ::c_int = 100;
++pub const EBADRQC: ::c_int = 101;
++pub const EBADSLT: ::c_int = 102;
++pub const EMULTIHOP: ::c_int = 110;
++pub const EOVERFLOW: ::c_int = 112;
++pub const ENOTUNIQ: ::c_int = 113;
++pub const EBADFD: ::c_int = 114;
++pub const EBADMSG: ::c_int = 84;
++
++pub const EREMCHG: ::c_int = 115;
++pub const ELIBACC: ::c_int = 122;
++pub const ELIBBAD: ::c_int = 123;
++pub const ELIBSCN: ::c_int = 124;
++pub const ELIBMAX: ::c_int = 125;
++pub const ELIBEXEC: ::c_int = 126;
++pub const EILSEQ: ::c_int = 116;
++
++pub const ERESTART: ::c_int = 127;
++pub const ESTRPIPE: ::c_int = 128;
++pub const EUSERS: ::c_int = 68;
++pub const ENOTSOCK: ::c_int = 38;
++pub const EDESTADDRREQ: ::c_int = 39;
++pub const EMSGSIZE: ::c_int = 40;
++pub const EPROTOTYPE: ::c_int = 41;
++pub const ENOPROTOOPT: ::c_int = 42;
++pub const EPROTONOSUPPORT: ::c_int = 43;
++pub const ESOCKTNOSUPPORT: ::c_int = 44;
++pub const EOPNOTSUPP: ::c_int = 45;
++pub const EPFNOSUPPORT: ::c_int = 46;
++pub const EAFNOSUPPORT: ::c_int = 47;
++pub const EADDRINUSE: ::c_int = 48;
++pub const EADDRNOTAVAIL: ::c_int = 49;
++pub const ENETDOWN: ::c_int = 50;
++pub const ENETUNREACH: ::c_int = 51;
++pub const ENETRESET: ::c_int = 52;
++pub const ECONNABORTED: ::c_int = 53;
++pub const ECONNRESET: ::c_int = 54;
++pub const ENOBUFS: ::c_int = 55;
++pub const EISCONN: ::c_int = 56;
++pub const ENOTCONN: ::c_int = 57;
++pub const ESHUTDOWN: ::c_int = 58;
++pub const ETOOMANYREFS: ::c_int = 59;
++pub const ETIMEDOUT: ::c_int = 60;
++pub const ECONNREFUSED: ::c_int = 61;
++pub const EHOSTDOWN: ::c_int = 64;
++pub const EHOSTUNREACH: ::c_int = 65;
++pub const EALREADY: ::c_int = 37;
++pub const EINPROGRESS: ::c_int = 36;
++pub const ESTALE: ::c_int = 70;
++pub const EDQUOT: ::c_int = 69;
++
++pub const ENOMEDIUM: ::c_int = 129;
++pub const EMEDIUMTYPE: ::c_int = 130;
++pub const ECANCELED: ::c_int = 131;
++pub const ENOKEY: ::c_int = 132;
++pub const EKEYEXPIRED: ::c_int = 133;
++pub const EKEYREVOKED: ::c_int = 134;
++pub const EKEYREJECTED: ::c_int = 135;
++pub const EOWNERDEAD: ::c_int = 136;
++pub const ENOTRECOVERABLE: ::c_int = 137;
++pub const EHWPOISON: ::c_int = 139;
++pub const ERFKILL: ::c_int = 138;
++
++pub const SA_ONSTACK: ::c_int = 0x00000001;
++pub const SA_SIGINFO: ::c_int = 0x00000040;
++pub const SA_NOCLDWAIT: ::c_int = 0x00000020;
++
++pub const SIGCHLD: ::c_int = 20;
++pub const SIGBUS: ::c_int = 10;
++pub const SIGUSR1: ::c_int = 30;
++pub const SIGUSR2: ::c_int = 31;
++pub const SIGCONT: ::c_int = 19;
++pub const SIGSTOP: ::c_int = 17;
++pub const SIGTSTP: ::c_int = 18;
++pub const SIGURG: ::c_int = 16;
++pub const SIGIO: ::c_int = 23;
++pub const SIGSYS: ::c_int = 12;
++pub const SIGINFO: ::c_int = 29;
++//pub const SIGSTKFLT: ::c_int = 16;
++pub const SIGUNUSED: ::c_int = 31;
++pub const SIGPOLL: ::c_int = SIGIO;
++pub const SIGPWR: ::c_int = SIGINFO;
++pub const SIG_SETMASK: ::c_int = 3;
++pub const SIG_BLOCK: ::c_int = 1;
++pub const SIG_UNBLOCK: ::c_int = 2;
++
++pub const POLLWRNORM: ::c_short = 0x0100; // TODO
++pub const POLLWRBAND: ::c_short = 0x0200;
++pub const O_ASYNC: ::c_int = 0o020000;
++pub const O_NDELAY: ::c_int = 0o00004;
++pub const PTRACE_DETACH: ::c_uint = 17;
++pub const EFD_NONBLOCK: ::c_int = 0o000000004;
++
++pub const F_GETLK: ::c_int = 7;
++pub const F_GETOWN: ::c_int = 6;
++pub const F_SETOWN: ::c_int = 5;
++pub const F_SETLK: ::c_int = 8;
++pub const F_SETLKW: ::c_int = 9;
++pub const F_RDLCK: ::c_int = 1;
++pub const F_WRLCK: ::c_int = 2;
++pub const F_UNLCK: ::c_int = 8;
++
++pub const SFD_NONBLOCK: ::c_int = 0o000000004;
++pub const TIOCEXCL: ::c_ulong = 0x540C;
++pub const TIOCNXCL: ::c_ulong = 0x540D;
++pub const TIOCSCTTY: ::c_ulong = 0x540E;
++pub const TIOCSTI: ::c_ulong = 0x5412;
++pub const TIOCMGET: ::c_ulong = 0x5415;
++pub const TIOCMBIS: ::c_ulong = 0x5416;
++pub const TIOCMBIC: ::c_ulong = 0x5417;
++pub const TIOCMSET: ::c_ulong = 0x5418;
++pub const TIOCCONS: ::c_ulong = 0x541D;
++
++pub const SFD_CLOEXEC: ::c_int = 0o010000000;
++
++pub const NCCS: usize = 32;
++pub const O_TRUNC: ::c_int = 0o02000;
++pub const EBFONT: ::c_int = 104;
++pub const ENOSTR: ::c_int = 87;
++pub const ENODATA: ::c_int = 86;
++pub const ETIME: ::c_int = 83;
++pub const ENOSR: ::c_int = 82;
++pub const ENONET: ::c_int = 105;
++pub const ENOPKG: ::c_int = 92;
++pub const EREMOTE: ::c_int = 71;
++pub const EREMOTEIO: ::c_int = 121;
++pub const ENOLINK: ::c_int = 106;
++pub const EADV: ::c_int = 107;
++pub const ESRMNT: ::c_int = 108;
++pub const ECOMM: ::c_int = 109;
++pub const EPROTO: ::c_int = 85;
++pub const EDOTDOT: ::c_int = 111;
++pub const SA_NODEFER: ::c_int = 0x00000008;
++pub const SA_NOMASK: ::c_int = SA_NODEFER;
++pub const SA_RESETHAND: ::c_int = 0x00000010;
++pub const SA_ONESHOT: ::c_int = SA_RESETHAND;
++pub const SA_RESTART: ::c_int = 0x00000002;
++pub const SA_NOCLDSTOP: ::c_int = 0x00000004;
++
++pub const EPOLL_CLOEXEC: ::c_int = 0o010000000; // TODO
++pub const EFD_CLOEXEC: ::c_int = 0o010000000; // TODO
++
++pub const MAP_LOCKED: ::c_int = 0x08000;
++pub const MAP_NORESERVE: ::c_int = 0x10000;
++
++pub const EDEADLOCK: ::c_int = EDEADLK;
++
++pub const FIOCLEX: ::c_ulong = 0x20006601;
++pub const FIONBIO: ::c_ulong = 0x8004667e;
++
++pub const MCL_CURRENT: ::c_int = 8192;
++pub const MCL_FUTURE: ::c_int = 16384;
++
++pub const SIGSTKSZ: ::size_t = 16384;
++pub const MINSIGSTKSZ: ::size_t = 4096;
++pub const CBAUD: ::tcflag_t = 0o0000037;
++pub const CBAUDEX: ::tcflag_t = 0o0000000;
++pub const TAB1: ::c_uint = 0o00002000;
++pub const TAB2: ::c_uint = 0o00004000;
++pub const TAB3: ::c_uint = 0o00006000;
++pub const CR1: ::c_uint = 0o00010000;
++pub const CR2: ::c_uint = 0o00020000;
++pub const CR3: ::c_uint = 0o00030000;
++pub const FF1: ::c_uint = 0o00040000;
++pub const BS1: ::c_uint = 0o00100000;
++pub const VT1: ::c_uint = 0o00200000;
++
++pub const VWERASE: usize = 4;
++pub const VREPRINT: usize = 6;
++pub const VSUSP: usize = 10;
++pub const VSTART: usize = 12;
++pub const VSTOP: usize = 13;
++pub const VDISCARD: usize = 15;
++pub const VTIME: usize = 17;
++pub const IXON: ::tcflag_t = 0o0001000;
++pub const IXOFF: ::tcflag_t = 0o0002000;
++pub const ONLCR: ::tcflag_t = 0o0000002;
++pub const CSIZE: ::tcflag_t = 0o00001400;
++pub const CS6: ::tcflag_t = 0o00000400;
++pub const CS7: ::tcflag_t = 0o00001000;
++pub const CS8: ::tcflag_t = 0o00001400;
++pub const CSTOPB: ::tcflag_t = 0o00002000;
++pub const CREAD: ::tcflag_t = 0o00004000;
++pub const PARENB: ::tcflag_t = 0o00010000;
++pub const PARODD: ::tcflag_t = 0o00020000;
++
++pub const EXTPROC: ::tcflag_t = 0x10000000;
++pub const HUPCL: ::tcflag_t = 0o00040000;
++pub const CLOCAL: ::tcflag_t = 0o00100000;
++pub const ECHOKE: ::tcflag_t = 0x00000001;
++pub const ECHOE: ::tcflag_t = 0x00000002;
++pub const ECHOK: ::tcflag_t = 0x00000004;
++pub const ECHONL: ::tcflag_t = 0x00000010;
++pub const ECHOPRT: ::tcflag_t = 0x00000020;
++pub const ECHOCTL: ::tcflag_t = 0x00000040;
++pub const ISIG: ::tcflag_t = 0x00000080;
++pub const ICANON: ::tcflag_t = 0x00000100;
++pub const PENDIN: ::tcflag_t = 0x20000000;
++pub const NOFLSH: ::tcflag_t = 0x80000000;
++//pub const CIBAUD: ::tcflag_t = 0o07600000;
++pub const VSWTC: usize = 7;
++pub const OLCUC: ::tcflag_t = 0o0000004;
++pub const NLDLY: ::tcflag_t = 0o00001400;
++pub const CRDLY: ::tcflag_t = 0o00030000;
++pub const TABDLY: ::tcflag_t = 0o00006000;
++pub const BSDLY: ::tcflag_t = 0o00100000;
++pub const FFDLY: ::tcflag_t = 0o00040000;
++pub const VTDLY: ::tcflag_t = 0o00200000;
++pub const XTABS: ::tcflag_t = 0o00006000;
++pub const IBSHIFT: ::tcflag_t = 16;
++pub const B0: ::speed_t = 0o0000000;
++pub const B50: ::speed_t = 0o0000001;
++pub const B75: ::speed_t = 0o0000002;
++pub const B110: ::speed_t = 0o0000003;
++pub const B134: ::speed_t = 0o0000004;
++pub const B150: ::speed_t = 0o0000005;
++pub const B200: ::speed_t = 0o0000006;
++pub const B300: ::speed_t = 0o0000007;
++pub const B600: ::speed_t = 0o0000010;
++pub const B1200: ::speed_t = 0o0000011;
++pub const B1800: ::speed_t = 0o0000012;
++pub const B2400: ::speed_t = 0o0000013;
++pub const B4800: ::speed_t = 0o0000014;
++pub const B9600: ::speed_t = 0o0000015;
++pub const B19200: ::speed_t = 0o0000016;
++pub const B38400: ::speed_t = 0o0000017;
++pub const EXTA: ::speed_t = B19200;
++pub const EXTB: ::speed_t = B38400;
++pub const BOTHER: ::speed_t = 0o010000;
++//pub const BOTHER1: ::speed_t = 0o010001;
++pub const B57600: ::speed_t = 0o00020;
++pub const B115200: ::speed_t = 0o00021;
++pub const B230400: ::speed_t = 0o00022;
++pub const B460800: ::speed_t = 0o00023;
++pub const B500000: ::speed_t = 0o00024;
++pub const B576000: ::speed_t = 0o00025;
++pub const B921600: ::speed_t = 0o00026;
++pub const B1000000: ::speed_t = 0o00027;
++pub const B1152000: ::speed_t = 0o00030;
++pub const B1500000: ::speed_t = 0o00031;
++pub const B2000000: ::speed_t = 0o00032;
++pub const B2500000: ::speed_t = 0o00033;
++pub const B3000000: ::speed_t = 0o00034;
++pub const B3500000: ::speed_t = 0o00035;
++pub const B4000000: ::speed_t = 0o00036;
++
++pub const VEOL: usize = 1;
++pub const VEOL2: usize = 2;
++//pub const _VEOL: usize = 5;
++//pub const _VEOL2: usize = 6;
++pub const VMIN: usize = 16;
++//pub const _VMIN: usize = 4;
++pub const IEXTEN: ::tcflag_t = 0x00000400;
++//pub const EXTPROC1: ::tcflag_t = 0x10000000;
++//pub const EXTPROC: ::tcflag_t = 0x10000000;
++pub const TOSTOP: ::tcflag_t = 0x00400000;
++pub const FLUSHO: ::tcflag_t = 0x00800000;
++pub const TCGETS: ::Ioctl = 0x402c7413;
++//pub const TCGETS2: ::c_ulong = 0x401a542a;
++pub const TCGETS2: ::Ioctl = 0x802c542a;
++pub const TCSETS: ::c_ulong = 0x802c7414;
++pub const TCSETSW: ::c_ulong = 0x802c7415;
++//pub const TCSETSW2: ::c_ulong = 0x801a542c;
++pub const TCSETSF: ::c_ulong = 0x802c7416;
++//pub const TCSETSF2: ::c_ulong = 0x801a542d;
++pub const TCGETA: ::c_ulong = 0x40127417;
++pub const TCSETA: ::c_ulong = 0x80127418;
++pub const TCSETAW: ::c_ulong = 0x80127419;
++pub const TCSETAF: ::c_ulong = 0x8012741c;
++pub const TCSBRK: ::c_ulong = 0x2000741d;
++pub const TCSBRKP: ::c_ulong = 0x5425;
++pub const FIONREAD: ::c_ulong = 0x4004667f;
++pub const TCXONC: ::c_ulong = 0x2000741e;
++pub const TCFLSH: ::c_ulong = 0x2000741f;
++pub const TIOCINQ: ::c_ulong = FIONREAD;
++
++pub const TIOCGPGRP: ::c_ulong = 0x40047477;
++pub const TIOCSPGRP: ::c_ulong = 0x80047476;
++pub const TIOCOUTQ: ::c_ulong = 0x40047473;
++pub const TIOCGWINSZ: ::c_ulong = 0x40087468;
++pub const TIOCSWINSZ: ::c_ulong = 0x80087467;
++
++// GUYC20201112 add RLIMIT_RSS ~ TIOCM_DSR
++pub const RLIMIT_RSS: ::c_int = 5;
++pub const RLIMIT_AS: ::c_int = 7;
++pub const RLIMIT_MEMLOCK: ::c_int = 9;
++pub const MAP_ANON: ::c_int = 0x0010;
++pub const MAP_ANONYMOUS: ::c_int = 0x0010;
++pub const MAP_DENYWRITE: ::c_int = 0x2000;
++pub const MAP_EXECUTABLE: ::c_int = 0x04000;
++pub const MAP_POPULATE: ::c_int = 0x20000;
++pub const MAP_NONBLOCK: ::c_int = 0x40000;
++pub const MAP_STACK: ::c_int = 0x80000;
++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 SOCK_STREAM: ::c_int = 1;
++pub const SOCK_DGRAM: ::c_int = 2;
++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 POSIX_FADV_DONTNEED: ::c_int = 4;
++pub const POSIX_FADV_NOREUSE: ::c_int = 5;
++pub const VEOF: usize = 0;
++pub const MAP_HUGETLB: ::c_int = 0x100000;
++pub const TCSANOW: ::c_int = 0;
++pub const TCSADRAIN: ::c_int = 1;
++pub const TCSAFLUSH: ::c_int = 2;
++pub const TIOCLINUX: ::c_ulong = 0x541C;
++pub const TIOCGSERIAL: ::c_ulong = 0x541E;
++pub const RTLD_DEEPBIND: ::c_int = 0x8;
++pub const RTLD_GLOBAL: ::c_int = 0x100;
++pub const RTLD_NOLOAD: ::c_int = 0x4;
++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_RNG: ::c_int = 0x080;
++pub const TIOCM_DSR: ::c_int = 0x100;
++
++pub const SYS_exit: ::c_long = 1;
++pub const SYS_fork: ::c_long = 2;
++pub const SYS_read: ::c_long = 3;
++pub const SYS_write: ::c_long = 4;
++pub const SYS_close: ::c_long = 6;
++pub const SYS_link: ::c_long = 9;
++pub const SYS_unlink: ::c_long = 10;
++pub const SYS_chdir: ::c_long = 12;
++pub const SYS_fchdir: ::c_long = 13;
++pub const SYS_mknod: ::c_long = 14;
++pub const SYS_chmod: ::c_long = 15;
++pub const SYS_chown: ::c_long = 16;
++pub const SYS_brk: ::c_long = 17;
++pub const SYS_lseek: ::c_long = 19;
++pub const SYS_getxpid: ::c_long = 20;
++pub const SYS_umount: ::c_long = 22;
++pub const SYS_umount2: ::c_long = SYS_umount;
++pub const SYS_setuid: ::c_long = 23;
++pub const SYS_getxuid: ::c_long = 24;
++pub const SYS_ptrace: ::c_long = 26;
++pub const SYS_access: ::c_long = 33;
++pub const SYS_sync: ::c_long = 36;
++pub const SYS_kill: ::c_long = 37;
++pub const SYS_setpgid: ::c_long = 39;
++pub const SYS_dup: ::c_long = 41;
++pub const SYS_pipe: ::c_long = 42;
++pub const SYS_open: ::c_long = 45;
++pub const SYS_getxgid: ::c_long = 47;
++pub const SYS_acct: ::c_long = 51;
++pub const SYS_sigpending: ::c_long = 52;
++pub const SYS_ioctl: ::c_long = 54;
++pub const SYS_symlink: ::c_long = 57;
++pub const SYS_readlink: ::c_long = 58;
++pub const SYS_execve: ::c_long = 59;
++pub const SYS_umask: ::c_long = 60;
++pub const SYS_chroot: ::c_long = 61;
++pub const SYS_getpgrp: ::c_long = 63;
++pub const SYS_vfork: ::c_long = 66;
++pub const SYS_stat: ::c_long = 67;
++pub const SYS_lstat: ::c_long = 68;
++pub const SYS_mmap: ::c_long = 71;
++pub const SYS_munmap: ::c_long = 73;
++pub const SYS_mprotect: ::c_long = 74;
++pub const SYS_madvise: ::c_long = 75;
++pub const SYS_vhangup: ::c_long = 76;
++pub const SYS_getgroups: ::c_long = 79;
++pub const SYS_setgroups: ::c_long = 80;
++pub const SYS_setpgrp: ::c_long = 82;
++pub const SYS_gethostname: ::c_long = 87;
++pub const SYS_sethostname: ::c_long = 88;
++pub const SYS_dup2: ::c_long = 90;
++pub const SYS_fstat: ::c_long = 91;
++pub const SYS_fcntl: ::c_long = 92;
++pub const SYS_poll: ::c_long = 94;
++pub const SYS_fsync: ::c_long = 95;
++pub const SYS_setpriority: ::c_long = 96;
++pub const SYS_socket: ::c_long = 97;
++pub const SYS_connect: ::c_long = 98;
++pub const SYS_accept: ::c_long = 99;
++pub const SYS_send: ::c_long = 101;
++pub const SYS_recv: ::c_long = 102;
++pub const SYS_sigreturn: ::c_long = 103;
++pub const SYS_bind: ::c_long = 104;
++pub const SYS_setsockopt: ::c_long = 105;
++pub const SYS_listen: ::c_long = 106;
++pub const SYS_sigsuspend: ::c_long = 111;
++pub const SYS_recvmsg: ::c_long = 113;
++pub const SYS_sendmsg: ::c_long = 114;
++pub const SYS_getsockopt: ::c_long = 118;
++pub const SYS_readv: ::c_long = 120;
++pub const SYS_writev: ::c_long = 121;
++pub const SYS_fchown: ::c_long = 123;
++pub const SYS_fchmod: ::c_long = 124;
++pub const SYS_recvfrom: ::c_long = 125;
++pub const SYS_setreuid: ::c_long = 126;
++pub const SYS_setregid: ::c_long = 127;
++pub const SYS_rename: ::c_long = 128;
++pub const SYS_truncate: ::c_long = 129;
++pub const SYS_ftruncate: ::c_long = 130;
++pub const SYS_flock: ::c_long = 131;
++pub const SYS_setgid: ::c_long = 132;
++pub const SYS_sendto: ::c_long = 133;
++pub const SYS_shutdown: ::c_long = 134;
++pub const SYS_socketpair: ::c_long = 135;
++pub const SYS_mkdir: ::c_long = 136;
++pub const SYS_rmdir: ::c_long = 137;
++pub const SYS_getpeername: ::c_long = 141;
++pub const SYS_getrlimit: ::c_long = 144;
++pub const SYS_setrlimit: ::c_long = 145;
++pub const SYS_setsid: ::c_long = 147;
++pub const SYS_quotactl: ::c_long = 148;
++pub const SYS_getsockname: ::c_long = 150;
++pub const SYS_sigaction: ::c_long = 156;
++pub const SYS_setdomainname: ::c_long = 166;
++pub const SYS_bpf: ::c_long = 170;
++pub const SYS_userfaultfd: ::c_long = 171;
++pub const SYS_membarrier: ::c_long = 172;
++pub const SYS_mlock2: ::c_long = 173;
++pub const SYS_getpid: ::c_long = 174;
++pub const SYS_getppid: ::c_long = 175;
++pub const SYS_getuid: ::c_long = 176;
++pub const SYS_geteuid: ::c_long = 177;
++pub const SYS_getgid: ::c_long = 178;
++pub const SYS_getegid: ::c_long = 179;
++pub const SYS_msgctl: ::c_long = 200;
++pub const SYS_msgget: ::c_long = 201;
++pub const SYS_msgrcv: ::c_long = 202;
++pub const SYS_msgsnd: ::c_long = 203;
++pub const SYS_semctl: ::c_long = 204;
++pub const SYS_semget: ::c_long = 205;
++pub const SYS_semop: ::c_long = 206;
++pub const SYS_lchown: ::c_long = 208;
++pub const SYS_shmctl: ::c_long = 210;
++pub const SYS_shmdt: ::c_long = 211;
++pub const SYS_shmget: ::c_long = 212;
++pub const SYS_msync: ::c_long = 217;
++pub const SYS_getpgid: ::c_long = 233;
++pub const SYS_getsid: ::c_long = 234;
++pub const SYS_sigaltstack: ::c_long = 235;
++pub const SYS_sysfs: ::c_long = 254;
++pub const SYS_pidfd_send_signal: ::c_long = 271;
++pub const SYS_pidfd_open: ::c_long = 281;
++pub const SYS_pidfd_getfd: ::c_long = 285;
++pub const SYS_getpriority: ::c_long = 298;
++pub const SYS_bdflush: ::c_long = 300;
++pub const SYS_mount: ::c_long = 302;
++pub const SYS_swapoff: ::c_long = 304;
++pub const SYS_getdents: ::c_long = 305;
++pub const SYS_create_module: ::c_long = 306;
++pub const SYS_init_module: ::c_long = 307;
++pub const SYS_delete_module: ::c_long = 308;
++pub const SYS_get_kernel_syms: ::c_long = 309;
++pub const SYS_syslog: ::c_long = 310;
++pub const SYS_reboot: ::c_long = 311;
++pub const SYS_clone: ::c_long = 312;
++pub const SYS_clone3: ::c_long = 282;
++pub const SYS_uselib: ::c_long = 313;
++pub const SYS_mlock: ::c_long = 314;
++pub const SYS_munlock: ::c_long = 315;
++pub const SYS_mlockall: ::c_long = 316;
++pub const SYS_munlockall: ::c_long = 317;
++pub const SYS_sysinfo: ::c_long = 318;
++pub const SYS_oldumount: ::c_long = 321;
++pub const SYS_swapon: ::c_long = 322;
++pub const SYS_times: ::c_long = 323;
++pub const SYS_personality: ::c_long = 324;
++pub const SYS_setfsuid: ::c_long = 325;
++pub const SYS_setfsgid: ::c_long = 326;
++pub const SYS_ustat: ::c_long = 327;
++pub const SYS_statfs: ::c_long = 328;
++pub const SYS_fstatfs: ::c_long = 329;
++pub const SYS_sched_setparam: ::c_long = 330;
++pub const SYS_sched_getparam: ::c_long = 331;
++pub const SYS_sched_setscheduler: ::c_long = 332;
++pub const SYS_sched_getscheduler: ::c_long = 333;
++pub const SYS_sched_yield: ::c_long = 334;
++pub const SYS_sched_get_priority_max: ::c_long = 335;
++pub const SYS_sched_get_priority_min: ::c_long = 336;
++pub const SYS_sched_rr_get_interval: ::c_long = 337;
++pub const SYS_afs_syscall: ::c_long = 338;
++pub const SYS_uname: ::c_long = 339;
++pub const SYS_nanosleep: ::c_long = 340;
++pub const SYS_mremap: ::c_long = 341;
++pub const SYS_nfsservctl: ::c_long = 342;
++pub const SYS_setresuid: ::c_long = 343;
++pub const SYS_getresuid: ::c_long = 344;
++pub const SYS_pciconfig_read: ::c_long = 345;
++pub const SYS_pciconfig_write: ::c_long = 346;
++pub const SYS_query_module: ::c_long = 347;
++pub const SYS_prctl: ::c_long = 348;
++pub const SYS_pread64: ::c_long = 349;
++pub const SYS_pwrite64: ::c_long = 350;
++pub const SYS_rt_sigreturn: ::c_long = 351;
++pub const SYS_rt_sigaction: ::c_long = 352;
++pub const SYS_rt_sigprocmask: ::c_long = 353;
++pub const SYS_rt_sigpending: ::c_long = 354;
++pub const SYS_rt_sigtimedwait: ::c_long = 355;
++pub const SYS_rt_sigqueueinfo: ::c_long = 356;
++pub const SYS_rt_sigsuspend: ::c_long = 357;
++pub const SYS_select: ::c_long = 358;
++pub const SYS_gettimeofday: ::c_long = 359;
++pub const SYS_settimeofday: ::c_long = 360;
++pub const SYS_getitimer: ::c_long = 361;
++pub const SYS_setitimer: ::c_long = 362;
++pub const SYS_utimes: ::c_long = 363;
++pub const SYS_getrusage: ::c_long = 364;
++pub const SYS_wait4: ::c_long = 365;
++pub const SYS_adjtimex: ::c_long = 366;
++pub const SYS_getcwd: ::c_long = 367;
++pub const SYS_capget: ::c_long = 368;
++pub const SYS_capset: ::c_long = 369;
++pub const SYS_sendfile: ::c_long = 370;
++pub const SYS_setresgid: ::c_long = 371;
++pub const SYS_getresgid: ::c_long = 372;
++pub const SYS_dipc: ::c_long = 373;
++pub const SYS_pivot_root: ::c_long = 374;
++pub const SYS_mincore: ::c_long = 375;
++pub const SYS_pciconfig_iobase: ::c_long = 376;
++pub const SYS_getdents64: ::c_long = 377;
++pub const SYS_gettid: ::c_long = 378;
++pub const SYS_readahead: ::c_long = 379;
++pub const SYS_tkill: ::c_long = 381;
++pub const SYS_setxattr: ::c_long = 382;
++pub const SYS_lsetxattr: ::c_long = 383;
++pub const SYS_fsetxattr: ::c_long = 384;
++pub const SYS_getxattr: ::c_long = 385;
++pub const SYS_lgetxattr: ::c_long = 386;
++pub const SYS_fgetxattr: ::c_long = 387;
++pub const SYS_listxattr: ::c_long = 388;
++pub const SYS_llistxattr: ::c_long = 389;
++pub const SYS_flistxattr: ::c_long = 390;
++pub const SYS_removexattr: ::c_long = 391;
++pub const SYS_lremovexattr: ::c_long = 392;
++pub const SYS_fremovexattr: ::c_long = 393;
++pub const SYS_futex: ::c_long = 394;
++pub const SYS_sched_setaffinity: ::c_long = 395;
++pub const SYS_sched_getaffinity: ::c_long = 396;
++pub const SYS_tuxcall: ::c_long = 397;
++pub const SYS_io_setup: ::c_long = 398;
++pub const SYS_io_destroy: ::c_long = 399;
++pub const SYS_io_getevents: ::c_long = 400;
++pub const SYS_io_submit: ::c_long = 401;
++pub const SYS_io_cancel: ::c_long = 402;
++pub const SYS_exit_group: ::c_long = 405;
++pub const SYS_lookup_dcookie: ::c_long = 406;
++pub const SYS_epoll_create: ::c_long = 407;
++pub const SYS_epoll_ctl: ::c_long = 408;
++pub const SYS_epoll_wait: ::c_long = 409;
++pub const SYS_remap_file_pages: ::c_long = 410;
++pub const SYS_set_tid_address: ::c_long = 411;
++pub const SYS_restart_syscall: ::c_long = 412;
++pub const SYS_fadvise64: ::c_long = 413;
++pub const SYS_timer_create: ::c_long = 414;
++pub const SYS_timer_settime: ::c_long = 415;
++pub const SYS_timer_gettime: ::c_long = 416;
++pub const SYS_timer_getoverrun: ::c_long = 417;
++pub const SYS_timer_delete: ::c_long = 418;
++pub const SYS_clock_settime: ::c_long = 419;
++pub const SYS_clock_gettime: ::c_long = 420;
++pub const SYS_clock_getres: ::c_long = 421;
++pub const SYS_clock_nanosleep: ::c_long = 422;
++pub const SYS_semtimedop: ::c_long = 423;
++pub const SYS_tgkill: ::c_long = 424;
++pub const SYS_stat64: ::c_long = 425;
++pub const SYS_lstat64: ::c_long = 426;
++pub const SYS_fstat64: ::c_long = 427;
++pub const SYS_vserver: ::c_long = 428;
++pub const SYS_mbind: ::c_long = 429;
++pub const SYS_get_mempolicy: ::c_long = 430;
++pub const SYS_set_mempolicy: ::c_long = 431;
++pub const SYS_mq_open: ::c_long = 432;
++pub const SYS_mq_unlink: ::c_long = 433;
++pub const SYS_mq_timedsend: ::c_long = 434;
++pub const SYS_mq_timedreceive: ::c_long = 435;
++pub const SYS_mq_notify: ::c_long = 436;
++pub const SYS_mq_getsetattr: ::c_long = 437;
++pub const SYS_waitid: ::c_long = 438;
++pub const SYS_add_key: ::c_long = 439;
++pub const SYS_request_key: ::c_long = 440;
++pub const SYS_keyctl: ::c_long = 441;
++pub const SYS_ioprio_set: ::c_long = 442;
++pub const SYS_ioprio_get: ::c_long = 443;
++pub const SYS_inotify_init: ::c_long = 444;
++pub const SYS_inotify_add_watch: ::c_long = 445;
++pub const SYS_inotify_rm_watch: ::c_long = 446;
++pub const SYS_fdatasync: ::c_long = 447;
++pub const SYS_kexec_load: ::c_long = 448;
++pub const SYS_migrate_pages: ::c_long = 449;
++pub const SYS_openat: ::c_long = 450;
++pub const SYS_mkdirat: ::c_long = 451;
++pub const SYS_mknodat: ::c_long = 452;
++pub const SYS_fchownat: ::c_long = 453;
++pub const SYS_futimesat: ::c_long = 454;
++pub const SYS_fstatat64: ::c_long = 455;
++pub const SYS_unlinkat: ::c_long = 456;
++pub const SYS_renameat: ::c_long = 457;
++pub const SYS_linkat: ::c_long = 458;
++pub const SYS_symlinkat: ::c_long = 459;
++pub const SYS_readlinkat: ::c_long = 460;
++pub const SYS_fchmodat: ::c_long = 461;
++pub const SYS_faccessat: ::c_long = 462;
++pub const SYS_pselect6: ::c_long = 463;
++pub const SYS_ppoll: ::c_long = 464;
++pub const SYS_unshare: ::c_long = 465;
++pub const SYS_set_robust_list: ::c_long = 466;
++pub const SYS_get_robust_list: ::c_long = 467;
++pub const SYS_splice: ::c_long = 468;
++pub const SYS_sync_file_range: ::c_long = 469;
++pub const SYS_tee: ::c_long = 470;
++pub const SYS_vmsplice: ::c_long = 471;
++pub const SYS_move_pages: ::c_long = 472;
++pub const SYS_getcpu: ::c_long = 473;
++pub const SYS_epoll_pwait: ::c_long = 474;
++pub const SYS_utimensat: ::c_long = 475;
++pub const SYS_signalfd: ::c_long = 476;
++pub const SYS_timerfd: ::c_long = 477;
++pub const SYS_eventfd: ::c_long = 478;
++pub const SYS_recvmmsg: ::c_long = 479;
++pub const SYS_fallocate: ::c_long = 480;
++pub const SYS_timerfd_create: ::c_long = 481;
++pub const SYS_timerfd_settime: ::c_long = 482;
++pub const SYS_timerfd_gettime: ::c_long = 483;
++pub const SYS_signalfd4: ::c_long = 484;
++pub const SYS_eventfd2: ::c_long = 485;
++pub const SYS_epoll_create1: ::c_long = 486;
++pub const SYS_dup3: ::c_long = 487;
++pub const SYS_pipe2: ::c_long = 488;
++pub const SYS_inotify_init1: ::c_long = 489;
++pub const SYS_preadv: ::c_long = 490;
++pub const SYS_pwritev: ::c_long = 491;
++pub const SYS_rt_tgsigqueueinfo: ::c_long = 492;
++pub const SYS_perf_event_open: ::c_long = 493;
++pub const SYS_fanotify_init: ::c_long = 494;
++pub const SYS_fanotify_mark: ::c_long = 495;
++pub const SYS_prlimit64: ::c_long = 496;
++pub const SYS_name_to_handle_at: ::c_long = 497;
++pub const SYS_open_by_handle_at: ::c_long = 498;
++pub const SYS_clock_adjtime: ::c_long = 499;
++pub const SYS_syncfs: ::c_long = 500;
++pub const SYS_setns: ::c_long = 501;
++pub const SYS_accept4: ::c_long = 502;
++pub const SYS_sendmmsg: ::c_long = 503;
++pub const SYS_process_vm_readv: ::c_long = 504;
++pub const SYS_process_vm_writev: ::c_long = 505;
++pub const SYS_kcmp: ::c_long = 506;
++pub const SYS_finit_module: ::c_long = 507;
++pub const SYS_sched_setattr: ::c_long = 508;
++pub const SYS_sched_getattr: ::c_long = 509;
++pub const SYS_renameat2: ::c_long = 510;
++pub const SYS_getrandom: ::c_long = 511;
++pub const SYS_memfd_create: ::c_long = 512;
++pub const SYS_execveat: ::c_long = 513;
++pub const SYS_seccomp: ::c_long = 514;
++pub const SYS_copy_file_range: ::c_long = 515;
++pub const SYS_preadv2: ::c_long = 516;
++pub const SYS_pwritev2: ::c_long = 517;
++pub const SYS_statx: ::c_long = 518;
++
++pub const F_OFD_GETLK: ::c_int = 36;
++pub const F_OFD_SETLK: ::c_int = 37;
++pub const F_OFD_SETLKW: ::c_int = 38;
++
++#[link(name = "util")]
++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;
++}
+diff --git a/vendor/libc-0.2.158/src/unix/linux_like/linux/gnu/mod.rs b/vendor/libc-0.2.158/src/unix/linux_like/linux/gnu/mod.rs
+index d6e5eb69c7f..8b31769639f 100644
+--- a/vendor/libc-0.2.158/src/unix/linux_like/linux/gnu/mod.rs
++++ b/vendor/libc-0.2.158/src/unix/linux_like/linux/gnu/mod.rs
+@@ -5,6 +5,9 @@
+ pub type regoff_t = ::c_int;
+ pub type __kernel_rwf_t = ::c_int;
+
++#[cfg(target_arch = "sw64")]
++pub type termios2 = termios;
++
+ cfg_if! {
+ if #[cfg(doc)] {
+ // Used in `linux::arch` to define ioctl constants.
+@@ -106,12 +109,16 @@ pub struct cmsghdr {
+ 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,
++ #[cfg(target_arch = "sw64")]
++ pub c_cc: [::cc_t; ::NCCS],
+ pub c_line: ::cc_t,
++ #[cfg(not(target_arch = "sw64"))]
+ pub c_cc: [::cc_t; ::NCCS],
+ #[cfg(not(any(
+ target_arch = "sparc",
+@@ -570,12 +577,14 @@ pub struct utmpx {
+ #[cfg(any(target_arch = "aarch64",
+ target_arch = "s390x",
+ target_arch = "loongarch64",
++ target_arch = "sw64",
+ 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",
++ target_arch = "sw64",
+ all(target_pointer_width = "32",
+ not(target_arch = "x86_64"))))]
+ pub ut_tv: ::timeval,
+@@ -583,12 +592,14 @@ pub struct utmpx {
+ #[cfg(not(any(target_arch = "aarch64",
+ target_arch = "s390x",
+ target_arch = "loongarch64",
++ target_arch = "sw64",
+ 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",
++ target_arch = "sw64",
+ all(target_pointer_width = "32",
+ not(target_arch = "x86_64")))))]
+ pub ut_tv: __timeval,
+@@ -772,6 +783,9 @@ fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
+ pub const RTLD_DI_TLS_MODID: ::c_int = 9;
+ pub const RTLD_DI_TLS_DATA: ::c_int = 10;
+
++#[cfg(target_arch = "sw64")]
++pub const SOCK_NONBLOCK: ::c_int = 0x40000000;
++#[cfg(not(target_arch = "sw64"))]
+ pub const SOCK_NONBLOCK: ::c_int = O_NONBLOCK;
+ pub const PIDFD_NONBLOCK: ::c_uint = O_NONBLOCK as ::c_uint;
+
+@@ -834,6 +848,9 @@ fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
+ pub const TMP_MAX: ::c_uint = 238328;
+ pub const FOPEN_MAX: ::c_uint = 16;
+ pub const FILENAME_MAX: ::c_uint = 4096;
++#[cfg(target_arch = "sw64")]
++pub const POSIX_MADV_DONTNEED: ::c_int = 6;
++#[cfg(not(target_arch = "sw64"))]
+ pub const POSIX_MADV_DONTNEED: ::c_int = 4;
+ pub const _CS_GNU_LIBC_VERSION: ::c_int = 2;
+ pub const _CS_GNU_LIBPTHREAD_VERSION: ::c_int = 3;
+@@ -1253,7 +1270,8 @@ fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
+ pub const PTHREAD_STACK_MIN: ::size_t = 16384;
+ } else if #[cfg(any(
+ target_arch = "sparc",
+- target_arch = "sparc64"
++ target_arch = "sparc64",
++ target_arch = "sw64"
+ ))] {
+ pub const PTHREAD_STACK_MIN: ::size_t = 0x6000;
+ } else {
+@@ -1559,6 +1577,7 @@ pub fn execveat(
+ target_arch = "aarch64",
+ target_arch = "powerpc64",
+ target_arch = "mips64",
++ target_arch = "sw64",
+ target_arch = "mips64r6",
+ target_arch = "s390x",
+ target_arch = "sparc64",
+diff --git a/vendor/libc-0.2.158/src/unix/linux_like/linux/mod.rs b/vendor/libc-0.2.158/src/unix/linux_like/linux/mod.rs
+index 779faa81ff1..6280b5ceb0e 100644
+--- a/vendor/libc-0.2.158/src/unix/linux_like/linux/mod.rs
++++ b/vendor/libc-0.2.158/src/unix/linux_like/linux/mod.rs
+@@ -6,6 +6,9 @@
+ pub type mode_t = u32;
+ pub type ino64_t = u64;
+ pub type off64_t = i64;
++#[cfg(target_arch = "sw64")]
++pub type blkcnt64_t = u64;
++#[cfg(not(target_arch = "sw64"))]
+ pub type blkcnt64_t = i64;
+ pub type rlim64_t = u64;
+ pub type mqd_t = ::c_int;
+@@ -3718,6 +3721,9 @@ fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
+ pub const MAP_SHARED_VALIDATE: ::c_int = 0x3;
+
+ // include/uapi/asm-generic/mman-common.h
++#[cfg(target_arch = "sw64")]
++pub const MAP_FIXED_NOREPLACE: ::c_int = 0x200000;
++#[cfg(not(target_arch = "sw64"))]
+ pub const MAP_FIXED_NOREPLACE: ::c_int = 0x100000;
+ pub const MLOCK_ONFAULT: ::c_uint = 0x01;
+
+@@ -4247,6 +4253,9 @@ pub fn FUTEX_OP(op: ::c_int, oparg: ::c_int, cmp: ::c_int, cmparg: ::c_int) -> :
+ pub const ENOEXEC: ::c_int = 8;
+ pub const EBADF: ::c_int = 9;
+ pub const ECHILD: ::c_int = 10;
++#[cfg(target_arch = "sw64")]
++pub const EAGAIN: ::c_int = 35;
++#[cfg(not(target_arch = "sw64"))]
+ pub const EAGAIN: ::c_int = 11;
+ pub const ENOMEM: ::c_int = 12;
+ pub const EACCES: ::c_int = 13;
+diff --git a/vendor/libc-0.2.158/src/unix/linux_like/linux/no_align.rs b/vendor/libc-0.2.158/src/unix/linux_like/linux/no_align.rs
+index 328a5cc4842..b917a868432 100644
+--- a/vendor/libc-0.2.158/src/unix/linux_like/linux/no_align.rs
++++ b/vendor/libc-0.2.158/src/unix/linux_like/linux/no_align.rs
+@@ -5,6 +5,7 @@ pub struct pthread_mutexattr_t {
+ #[cfg(any(target_arch = "x86_64",
+ target_arch = "powerpc64",
+ target_arch = "mips64",
++ target_arch = "sw64",
+ target_arch = "mips64r6",
+ target_arch = "s390x",
+ target_arch = "sparc64",
+@@ -17,6 +18,7 @@ pub struct pthread_mutexattr_t {
+ #[cfg(not(any(target_arch = "x86_64",
+ target_arch = "powerpc64",
+ target_arch = "mips64",
++ target_arch = "sw64",
+ target_arch = "mips64r6",
+ target_arch = "s390x",
+ target_arch = "sparc64",
+diff --git a/vendor/libc-0.2.158/src/unix/linux_like/mod.rs b/vendor/libc-0.2.158/src/unix/linux_like/mod.rs
+index 749c8a16d01..640e4665ec8 100644
+--- a/vendor/libc-0.2.158/src/unix/linux_like/mod.rs
++++ b/vendor/libc-0.2.158/src/unix/linux_like/mod.rs
+@@ -597,13 +597,22 @@ fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
+ pub const MAP_FILE: ::c_int = 0x0000;
+ pub const MAP_SHARED: ::c_int = 0x0001;
+ pub const MAP_PRIVATE: ::c_int = 0x0002;
++#[cfg(target_arch = "sw64")]
++pub const MAP_FIXED: ::c_int = 0x0100;
++#[cfg(not(target_arch = "sw64"))]
+ 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;
++#[cfg(target_arch = "sw64")]
++pub const MS_INVALIDATE: ::c_int = 0x0004;
++#[cfg(not(target_arch = "sw64"))]
+ pub const MS_INVALIDATE: ::c_int = 0x0002;
++#[cfg(target_arch = "sw64")]
++pub const MS_SYNC: ::c_int = 0x0002;
++#[cfg(not(target_arch = "sw64"))]
+ pub const MS_SYNC: ::c_int = 0x0004;
+
+ // MS_ flags for mount(2)
+@@ -647,6 +656,9 @@ fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
+ pub const MADV_RANDOM: ::c_int = 1;
+ pub const MADV_SEQUENTIAL: ::c_int = 2;
+ pub const MADV_WILLNEED: ::c_int = 3;
++#[cfg(target_arch = "sw64")]
++pub const MADV_DONTNEED: ::c_int = 6;
++#[cfg(not(target_arch = "sw64"))]
+ pub const MADV_DONTNEED: ::c_int = 4;
+ pub const MADV_FREE: ::c_int = 8;
+ pub const MADV_REMOVE: ::c_int = 9;
+@@ -1126,11 +1138,22 @@ fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
+ 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;
++cfg_if! {
++ if #[cfg(target_arch = "sw64")] {
++ pub const VERASE: usize = 3;
++ pub const VKILL: usize = 5;
++ pub const VINTR: usize = 8;
++ pub const VQUIT: usize = 9;
++ pub const VLNEXT: usize = 14;
++ } else {
++ 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;
+diff --git a/vendor/linux-raw-sys-0.4.14/src/lib.rs b/vendor/linux-raw-sys-0.4.14/src/lib.rs
+index 0e3fe2fe2bb..7d4be9aa560 100644
+--- a/vendor/linux-raw-sys-0.4.14/src/lib.rs
++++ b/vendor/linux-raw-sys-0.4.14/src/lib.rs
+@@ -491,6 +491,66 @@ pub const fn sig_ign() -> super::general::__kernel_sighandler_t {
+ #[path = "mips/xdp.rs"]
+ pub mod xdp;
+ #[cfg(feature = "bootparam")]
++#[cfg(target_arch = "sw64")]
++#[path = "sw_64/bootparam.rs"]
++pub mod bootparam;
++#[cfg(feature = "errno")]
++#[cfg(target_arch = "sw64")]
++#[path = "sw_64/errno.rs"]
++pub mod errno;
++#[cfg(feature = "general")]
++#[cfg(target_arch = "sw64")]
++#[path = "sw_64/general.rs"]
++pub mod general;
++#[cfg(feature = "if_arp")]
++#[cfg(target_arch = "sw64")]
++#[path = "sw_64/if_arp.rs"]
++pub mod if_arp;
++#[cfg(feature = "if_ether")]
++#[cfg(target_arch = "sw64")]
++#[path = "sw_64/if_ether.rs"]
++pub mod if_ether;
++#[cfg(feature = "if_packet")]
++#[cfg(target_arch = "sw64")]
++#[path = "sw_64/if_packet.rs"]
++pub mod if_packet;
++#[cfg(feature = "io_uring")]
++#[cfg(target_arch = "sw64")]
++#[path = "sw_64/io_uring.rs"]
++pub mod io_uring;
++#[cfg(feature = "ioctl")]
++#[cfg(target_arch = "sw64")]
++#[path = "sw_64/ioctl.rs"]
++pub mod ioctl;
++#[cfg(feature = "loop_device")]
++#[cfg(target_arch = "sw64")]
++#[path = "sw_64/loop_device.rs"]
++pub mod loop_device;
++#[cfg(feature = "mempolicy")]
++#[cfg(target_arch = "sw64")]
++#[path = "sw_64/mempolicy.rs"]
++pub mod mempolicy;
++#[cfg(feature = "net")]
++#[cfg(target_arch = "sw64")]
++#[path = "sw_64/net.rs"]
++pub mod net;
++#[cfg(feature = "netlink")]
++#[cfg(target_arch = "sw64")]
++#[path = "sw_64/netlink.rs"]
++pub mod netlink;
++#[cfg(feature = "prctl")]
++#[cfg(target_arch = "sw64")]
++#[path = "sw_64/prctl.rs"]
++pub mod prctl;
++#[cfg(feature = "system")]
++#[cfg(target_arch = "sw64")]
++#[path = "sw_64/system.rs"]
++pub mod system;
++#[cfg(feature = "xdp")]
++#[cfg(target_arch = "sw64")]
++#[path = "sw_64/xdp.rs"]
++pub mod xdp;
++#[cfg(feature = "bootparam")]
+ #[cfg(target_arch = "mips64")]
+ #[path = "mips64/bootparam.rs"]
+ pub mod bootparam;
+diff --git a/vendor/linux-raw-sys-0.4.14/src/sw_64/bootparam.rs b/vendor/linux-raw-sys-0.4.14/src/sw_64/bootparam.rs
+new file mode 100644
+index 00000000000..286ed79ea54
+--- /dev/null
++++ b/vendor/linux-raw-sys-0.4.14/src/sw_64/bootparam.rs
+@@ -0,0 +1,3 @@
++/* automatically generated by rust-bindgen 0.66.1 */
++
++
+diff --git a/vendor/linux-raw-sys-0.4.14/src/sw_64/errno.rs b/vendor/linux-raw-sys-0.4.14/src/sw_64/errno.rs
+new file mode 100644
+index 00000000000..337d8379f58
+--- /dev/null
++++ b/vendor/linux-raw-sys-0.4.14/src/sw_64/errno.rs
+@@ -0,0 +1,137 @@
++/* automatically generated by rust-bindgen 0.66.1 */
++
++pub const EPERM: u32 = 1;
++pub const ENOENT: u32 = 2;
++pub const ESRCH: u32 = 3;
++pub const EINTR: u32 = 4;
++pub const EIO: u32 = 5;
++pub const ENXIO: u32 = 6;
++pub const E2BIG: u32 = 7;
++pub const ENOEXEC: u32 = 8;
++pub const EBADF: u32 = 9;
++pub const ECHILD: u32 = 10;
++pub const EAGAIN: u32 = 11;
++pub const ENOMEM: u32 = 12;
++pub const EACCES: u32 = 13;
++pub const EFAULT: u32 = 14;
++pub const ENOTBLK: u32 = 15;
++pub const EBUSY: u32 = 16;
++pub const EEXIST: u32 = 17;
++pub const EXDEV: u32 = 18;
++pub const ENODEV: u32 = 19;
++pub const ENOTDIR: u32 = 20;
++pub const EISDIR: u32 = 21;
++pub const EINVAL: u32 = 22;
++pub const ENFILE: u32 = 23;
++pub const EMFILE: u32 = 24;
++pub const ENOTTY: u32 = 25;
++pub const ETXTBSY: u32 = 26;
++pub const EFBIG: u32 = 27;
++pub const ENOSPC: u32 = 28;
++pub const ESPIPE: u32 = 29;
++pub const EROFS: u32 = 30;
++pub const EMLINK: u32 = 31;
++pub const EPIPE: u32 = 32;
++pub const EDOM: u32 = 33;
++pub const ERANGE: u32 = 34;
++pub const ENOMSG: u32 = 35;
++pub const EIDRM: u32 = 36;
++pub const ECHRNG: u32 = 37;
++pub const EL2NSYNC: u32 = 38;
++pub const EL3HLT: u32 = 39;
++pub const EL3RST: u32 = 40;
++pub const ELNRNG: u32 = 41;
++pub const EUNATCH: u32 = 42;
++pub const ENOCSI: u32 = 43;
++pub const EL2HLT: u32 = 44;
++pub const EDEADLK: u32 = 45;
++pub const ENOLCK: u32 = 46;
++pub const EBADE: u32 = 50;
++pub const EBADR: u32 = 51;
++pub const EXFULL: u32 = 52;
++pub const ENOANO: u32 = 53;
++pub const EBADRQC: u32 = 54;
++pub const EBADSLT: u32 = 55;
++pub const EDEADLOCK: u32 = 56;
++pub const EBFONT: u32 = 59;
++pub const ENOSTR: u32 = 60;
++pub const ENODATA: u32 = 61;
++pub const ETIME: u32 = 62;
++pub const ENOSR: u32 = 63;
++pub const ENONET: u32 = 64;
++pub const ENOPKG: u32 = 65;
++pub const EREMOTE: u32 = 66;
++pub const ENOLINK: u32 = 67;
++pub const EADV: u32 = 68;
++pub const ESRMNT: u32 = 69;
++pub const ECOMM: u32 = 70;
++pub const EPROTO: u32 = 71;
++pub const EDOTDOT: u32 = 73;
++pub const EMULTIHOP: u32 = 74;
++pub const EBADMSG: u32 = 77;
++pub const ENAMETOOLONG: u32 = 78;
++pub const EOVERFLOW: u32 = 79;
++pub const ENOTUNIQ: u32 = 80;
++pub const EBADFD: u32 = 81;
++pub const EREMCHG: u32 = 82;
++pub const ELIBACC: u32 = 83;
++pub const ELIBBAD: u32 = 84;
++pub const ELIBSCN: u32 = 85;
++pub const ELIBMAX: u32 = 86;
++pub const ELIBEXEC: u32 = 87;
++pub const EILSEQ: u32 = 88;
++pub const ENOSYS: u32 = 89;
++pub const ELOOP: u32 = 90;
++pub const ERESTART: u32 = 91;
++pub const ESTRPIPE: u32 = 92;
++pub const ENOTEMPTY: u32 = 93;
++pub const EUSERS: u32 = 94;
++pub const ENOTSOCK: u32 = 95;
++pub const EDESTADDRREQ: u32 = 96;
++pub const EMSGSIZE: u32 = 97;
++pub const EPROTOTYPE: u32 = 98;
++pub const ENOPROTOOPT: u32 = 99;
++pub const EPROTONOSUPPORT: u32 = 120;
++pub const ESOCKTNOSUPPORT: u32 = 121;
++pub const EOPNOTSUPP: u32 = 122;
++pub const EPFNOSUPPORT: u32 = 123;
++pub const EAFNOSUPPORT: u32 = 124;
++pub const EADDRINUSE: u32 = 125;
++pub const EADDRNOTAVAIL: u32 = 126;
++pub const ENETDOWN: u32 = 127;
++pub const ENETUNREACH: u32 = 128;
++pub const ENETRESET: u32 = 129;
++pub const ECONNABORTED: u32 = 130;
++pub const ECONNRESET: u32 = 131;
++pub const ENOBUFS: u32 = 132;
++pub const EISCONN: u32 = 133;
++pub const ENOTCONN: u32 = 134;
++pub const EUCLEAN: u32 = 135;
++pub const ENOTNAM: u32 = 137;
++pub const ENAVAIL: u32 = 138;
++pub const EISNAM: u32 = 139;
++pub const EREMOTEIO: u32 = 140;
++pub const EINIT: u32 = 141;
++pub const EREMDEV: u32 = 142;
++pub const ESHUTDOWN: u32 = 143;
++pub const ETOOMANYREFS: u32 = 144;
++pub const ETIMEDOUT: u32 = 145;
++pub const ECONNREFUSED: u32 = 146;
++pub const EHOSTDOWN: u32 = 147;
++pub const EHOSTUNREACH: u32 = 148;
++pub const EWOULDBLOCK: u32 = 11;
++pub const EALREADY: u32 = 149;
++pub const EINPROGRESS: u32 = 150;
++pub const ESTALE: u32 = 151;
++pub const ECANCELED: u32 = 158;
++pub const ENOMEDIUM: u32 = 159;
++pub const EMEDIUMTYPE: u32 = 160;
++pub const ENOKEY: u32 = 161;
++pub const EKEYEXPIRED: u32 = 162;
++pub const EKEYREVOKED: u32 = 163;
++pub const EKEYREJECTED: u32 = 164;
++pub const EOWNERDEAD: u32 = 165;
++pub const ENOTRECOVERABLE: u32 = 166;
++pub const ERFKILL: u32 = 167;
++pub const EHWPOISON: u32 = 168;
++pub const EDQUOT: u32 = 1133;
+diff --git a/vendor/linux-raw-sys-0.4.14/src/sw_64/general.rs b/vendor/linux-raw-sys-0.4.14/src/sw_64/general.rs
+new file mode 100644
+index 00000000000..e6bca15bc83
+--- /dev/null
++++ b/vendor/linux-raw-sys-0.4.14/src/sw_64/general.rs
+@@ -0,0 +1,3030 @@
++/* automatically generated by rust-bindgen 0.66.1 */
++
++pub type __s8 = crate::ctypes::c_schar;
++pub type __u8 = crate::ctypes::c_uchar;
++pub type __s16 = crate::ctypes::c_short;
++pub type __u16 = crate::ctypes::c_ushort;
++pub type __s32 = crate::ctypes::c_int;
++pub type __u32 = crate::ctypes::c_uint;
++pub type __s64 = crate::ctypes::c_long;
++pub type __u64 = crate::ctypes::c_ulong;
++pub type __kernel_sighandler_t = ::core::option::Option<unsafe extern "C" fn(arg1: crate::ctypes::c_int)>;
++pub type __kernel_key_t = crate::ctypes::c_int;
++pub type __kernel_mqd_t = crate::ctypes::c_int;
++pub type __kernel_daddr_t = crate::ctypes::c_long;
++pub type __kernel_long_t = crate::ctypes::c_long;
++pub type __kernel_ulong_t = crate::ctypes::c_ulong;
++pub type __kernel_ino_t = __kernel_ulong_t;
++pub type __kernel_mode_t = crate::ctypes::c_uint;
++pub type __kernel_pid_t = crate::ctypes::c_int;
++pub type __kernel_ipc_pid_t = crate::ctypes::c_int;
++pub type __kernel_uid_t = crate::ctypes::c_uint;
++pub type __kernel_gid_t = crate::ctypes::c_uint;
++pub type __kernel_suseconds_t = __kernel_long_t;
++pub type __kernel_uid32_t = crate::ctypes::c_uint;
++pub type __kernel_gid32_t = crate::ctypes::c_uint;
++pub type __kernel_old_uid_t = __kernel_uid_t;
++pub type __kernel_old_gid_t = __kernel_gid_t;
++pub type __kernel_old_dev_t = crate::ctypes::c_uint;
++pub type __kernel_size_t = __kernel_ulong_t;
++pub type __kernel_ssize_t = __kernel_long_t;
++pub type __kernel_ptrdiff_t = __kernel_long_t;
++pub type __kernel_off_t = __kernel_long_t;
++pub type __kernel_loff_t = crate::ctypes::c_longlong;
++pub type __kernel_old_time_t = __kernel_long_t;
++pub type __kernel_time_t = __kernel_long_t;
++pub type __kernel_time64_t = crate::ctypes::c_longlong;
++pub type __kernel_clock_t = __kernel_long_t;
++pub type __kernel_timer_t = crate::ctypes::c_int;
++pub type __kernel_clockid_t = crate::ctypes::c_int;
++pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
++pub type __kernel_uid16_t = crate::ctypes::c_ushort;
++pub type __kernel_gid16_t = crate::ctypes::c_ushort;
++pub type __le16 = __u16;
++pub type __be16 = __u16;
++pub type __le32 = __u32;
++pub type __be32 = __u32;
++pub type __le64 = __u64;
++pub type __be64 = __u64;
++pub type __sum16 = __u16;
++pub type __wsum = __u32;
++pub type __poll_t = crate::ctypes::c_uint;
++pub type cap_user_header_t = *mut __user_cap_header_struct;
++pub type cap_user_data_t = *mut __user_cap_data_struct;
++pub type __kernel_rwf_t = crate::ctypes::c_int;
++pub type old_sigset_t = crate::ctypes::c_ulong;
++pub type __signalfn_t = ::core::option::Option<unsafe extern "C" fn(arg1: crate::ctypes::c_int)>;
++pub type __sighandler_t = __signalfn_t;
++pub type __restorefn_t = ::core::option::Option<unsafe extern "C" fn()>;
++pub type __sigrestore_t = __restorefn_t;
++pub type stack_t = sigaltstack;
++pub type sigval_t = sigval;
++pub type siginfo_t = siginfo;
++pub type sigevent_t = sigevent;
++pub type cc_t = crate::ctypes::c_uchar;
++pub type speed_t = crate::ctypes::c_uint;
++pub type tcflag_t = crate::ctypes::c_uint;
++pub type fsid_t = __kernel_fsid_t;
++pub type __fsword_t = __u32;
++#[repr(C)]
++#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
++pub struct __BindgenBitfieldUnit<Storage> {
++storage: Storage,
++}
++#[repr(C)]
++#[derive(Default)]
++pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct __kernel_fd_set {
++pub fds_bits: [crate::ctypes::c_ulong; 16usize],
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct __kernel_fsid_t {
++pub val: [crate::ctypes::c_int; 2usize],
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct __user_cap_header_struct {
++pub version: __u32,
++pub pid: crate::ctypes::c_int,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct __user_cap_data_struct {
++pub effective: __u32,
++pub permitted: __u32,
++pub inheritable: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct vfs_cap_data {
++pub magic_etc: __le32,
++pub data: [vfs_cap_data__bindgen_ty_1; 2usize],
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct vfs_cap_data__bindgen_ty_1 {
++pub permitted: __le32,
++pub inheritable: __le32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct vfs_ns_cap_data {
++pub magic_etc: __le32,
++pub data: [vfs_ns_cap_data__bindgen_ty_1; 2usize],
++pub rootid: __le32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct vfs_ns_cap_data__bindgen_ty_1 {
++pub permitted: __le32,
++pub inheritable: __le32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct f_owner_ex {
++pub type_: crate::ctypes::c_int,
++pub pid: __kernel_pid_t,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct flock {
++pub l_type: crate::ctypes::c_short,
++pub l_whence: crate::ctypes::c_short,
++pub l_start: __kernel_off_t,
++pub l_len: __kernel_off_t,
++pub l_pid: __kernel_pid_t,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct flock64 {
++pub l_type: crate::ctypes::c_short,
++pub l_whence: crate::ctypes::c_short,
++pub l_start: __kernel_loff_t,
++pub l_len: __kernel_loff_t,
++pub l_pid: __kernel_pid_t,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct open_how {
++pub flags: __u64,
++pub mode: __u64,
++pub resolve: __u64,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct epoll_event {
++pub events: __poll_t,
++pub data: __u64,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct fscrypt_policy_v1 {
++pub version: __u8,
++pub contents_encryption_mode: __u8,
++pub filenames_encryption_mode: __u8,
++pub flags: __u8,
++pub master_key_descriptor: [__u8; 8usize],
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct fscrypt_key {
++pub mode: __u32,
++pub raw: [__u8; 64usize],
++pub size: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct fscrypt_policy_v2 {
++pub version: __u8,
++pub contents_encryption_mode: __u8,
++pub filenames_encryption_mode: __u8,
++pub flags: __u8,
++pub __reserved: [__u8; 4usize],
++pub master_key_identifier: [__u8; 16usize],
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub struct fscrypt_get_policy_ex_arg {
++pub policy_size: __u64,
++pub policy: fscrypt_get_policy_ex_arg__bindgen_ty_1,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub struct fscrypt_key_specifier {
++pub type_: __u32,
++pub __reserved: __u32,
++pub u: fscrypt_key_specifier__bindgen_ty_1,
++}
++#[repr(C)]
++#[derive(Debug)]
++pub struct fscrypt_provisioning_key_payload {
++pub type_: __u32,
++pub __reserved: __u32,
++pub raw: __IncompleteArrayField<__u8>,
++}
++#[repr(C)]
++pub struct fscrypt_add_key_arg {
++pub key_spec: fscrypt_key_specifier,
++pub raw_size: __u32,
++pub key_id: __u32,
++pub __reserved: [__u32; 8usize],
++pub raw: __IncompleteArrayField<__u8>,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub struct fscrypt_remove_key_arg {
++pub key_spec: fscrypt_key_specifier,
++pub removal_status_flags: __u32,
++pub __reserved: [__u32; 5usize],
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub struct fscrypt_get_key_status_arg {
++pub key_spec: fscrypt_key_specifier,
++pub __reserved: [__u32; 6usize],
++pub status: __u32,
++pub status_flags: __u32,
++pub user_count: __u32,
++pub __out_reserved: [__u32; 13usize],
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct mount_attr {
++pub attr_set: __u64,
++pub attr_clr: __u64,
++pub propagation: __u64,
++pub userns_fd: __u64,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct file_clone_range {
++pub src_fd: __s64,
++pub src_offset: __u64,
++pub src_length: __u64,
++pub dest_offset: __u64,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct fstrim_range {
++pub start: __u64,
++pub len: __u64,
++pub minlen: __u64,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct file_dedupe_range_info {
++pub dest_fd: __s64,
++pub dest_offset: __u64,
++pub bytes_deduped: __u64,
++pub status: __s32,
++pub reserved: __u32,
++}
++#[repr(C)]
++#[derive(Debug)]
++pub struct file_dedupe_range {
++pub src_offset: __u64,
++pub src_length: __u64,
++pub dest_count: __u16,
++pub reserved1: __u16,
++pub reserved2: __u32,
++pub info: __IncompleteArrayField<file_dedupe_range_info>,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct files_stat_struct {
++pub nr_files: crate::ctypes::c_ulong,
++pub nr_free_files: crate::ctypes::c_ulong,
++pub max_files: crate::ctypes::c_ulong,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct inodes_stat_t {
++pub nr_inodes: crate::ctypes::c_long,
++pub nr_unused: crate::ctypes::c_long,
++pub dummy: [crate::ctypes::c_long; 5usize],
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct fsxattr {
++pub fsx_xflags: __u32,
++pub fsx_extsize: __u32,
++pub fsx_nextents: __u32,
++pub fsx_projid: __u32,
++pub fsx_cowextsize: __u32,
++pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct futex_waitv {
++pub val: __u64,
++pub uaddr: __u64,
++pub flags: __u32,
++pub __reserved: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct robust_list {
++pub next: *mut robust_list,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct robust_list_head {
++pub list: robust_list,
++pub futex_offset: crate::ctypes::c_long,
++pub list_op_pending: *mut robust_list,
++}
++#[repr(C)]
++#[derive(Debug)]
++pub struct inotify_event {
++pub wd: __s32,
++pub mask: __u32,
++pub cookie: __u32,
++pub len: __u32,
++pub name: __IncompleteArrayField<crate::ctypes::c_char>,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct pollfd {
++pub fd: crate::ctypes::c_int,
++pub events: crate::ctypes::c_short,
++pub revents: crate::ctypes::c_short,
++}
++#[repr(C)]
++#[derive(Debug)]
++pub struct rand_pool_info {
++pub entropy_count: crate::ctypes::c_int,
++pub buf_size: crate::ctypes::c_int,
++pub buf: __IncompleteArrayField<__u32>,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct __kernel_timespec {
++pub tv_sec: __kernel_time64_t,
++pub tv_nsec: crate::ctypes::c_longlong,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct __kernel_itimerspec {
++pub it_interval: __kernel_timespec,
++pub it_value: __kernel_timespec,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct __kernel_old_timeval {
++pub tv_sec: __kernel_long_t,
++pub tv_usec: __kernel_long_t,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct __kernel_old_timespec {
++pub tv_sec: __kernel_old_time_t,
++pub tv_nsec: crate::ctypes::c_long,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct __kernel_old_itimerval {
++pub it_interval: __kernel_old_timeval,
++pub it_value: __kernel_old_timeval,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct __kernel_sock_timeval {
++pub tv_sec: __s64,
++pub tv_usec: __s64,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct timespec {
++pub tv_sec: __kernel_old_time_t,
++pub tv_nsec: crate::ctypes::c_long,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct timeval {
++pub tv_sec: __kernel_old_time_t,
++pub tv_usec: __kernel_suseconds_t,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct itimerspec {
++pub it_interval: timespec,
++pub it_value: timespec,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct itimerval {
++pub it_interval: timeval,
++pub it_value: timeval,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct timezone {
++pub tz_minuteswest: crate::ctypes::c_int,
++pub tz_dsttime: crate::ctypes::c_int,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct rusage {
++pub ru_utime: __kernel_old_timeval,
++pub ru_stime: __kernel_old_timeval,
++pub ru_maxrss: __kernel_long_t,
++pub ru_ixrss: __kernel_long_t,
++pub ru_idrss: __kernel_long_t,
++pub ru_isrss: __kernel_long_t,
++pub ru_minflt: __kernel_long_t,
++pub ru_majflt: __kernel_long_t,
++pub ru_nswap: __kernel_long_t,
++pub ru_inblock: __kernel_long_t,
++pub ru_oublock: __kernel_long_t,
++pub ru_msgsnd: __kernel_long_t,
++pub ru_msgrcv: __kernel_long_t,
++pub ru_nsignals: __kernel_long_t,
++pub ru_nvcsw: __kernel_long_t,
++pub ru_nivcsw: __kernel_long_t,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct rlimit {
++pub rlim_cur: __kernel_ulong_t,
++pub rlim_max: __kernel_ulong_t,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct rlimit64 {
++pub rlim_cur: __u64,
++pub rlim_max: __u64,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct clone_args {
++pub flags: __u64,
++pub pidfd: __u64,
++pub child_tid: __u64,
++pub parent_tid: __u64,
++pub exit_signal: __u64,
++pub stack: __u64,
++pub stack_size: __u64,
++pub tls: __u64,
++pub set_tid: __u64,
++pub set_tid_size: __u64,
++pub cgroup: __u64,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct sigset_t {
++pub sig: [crate::ctypes::c_ulong; 2usize],
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct sigaction {
++pub sa_flags: crate::ctypes::c_uint,
++pub sa_handler: __sighandler_t,
++pub sa_mask: sigset_t,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct sigaltstack {
++pub ss_sp: *mut crate::ctypes::c_void,
++pub ss_size: __kernel_size_t,
++pub ss_flags: crate::ctypes::c_int,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct __sifields__bindgen_ty_1 {
++pub _pid: __kernel_pid_t,
++pub _uid: __kernel_uid32_t,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub struct __sifields__bindgen_ty_2 {
++pub _tid: __kernel_timer_t,
++pub _overrun: crate::ctypes::c_int,
++pub _sigval: sigval_t,
++pub _sys_private: crate::ctypes::c_int,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub struct __sifields__bindgen_ty_3 {
++pub _pid: __kernel_pid_t,
++pub _uid: __kernel_uid32_t,
++pub _sigval: sigval_t,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct __sifields__bindgen_ty_4 {
++pub _pid: __kernel_pid_t,
++pub _uid: __kernel_uid32_t,
++pub _status: crate::ctypes::c_int,
++pub _utime: __kernel_clock_t,
++pub _stime: __kernel_clock_t,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub struct __sifields__bindgen_ty_5 {
++pub _addr: *mut crate::ctypes::c_void,
++pub __bindgen_anon_1: __sifields__bindgen_ty_5__bindgen_ty_1,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct __sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_1 {
++pub _dummy_bnd: [crate::ctypes::c_char; 8usize],
++pub _lower: *mut crate::ctypes::c_void,
++pub _upper: *mut crate::ctypes::c_void,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct __sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_2 {
++pub _dummy_pkey: [crate::ctypes::c_char; 8usize],
++pub _pkey: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct __sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_3 {
++pub _data: crate::ctypes::c_ulong,
++pub _type: __u32,
++pub _flags: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct __sifields__bindgen_ty_6 {
++pub _band: crate::ctypes::c_long,
++pub _fd: crate::ctypes::c_int,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct __sifields__bindgen_ty_7 {
++pub _call_addr: *mut crate::ctypes::c_void,
++pub _syscall: crate::ctypes::c_int,
++pub _arch: crate::ctypes::c_uint,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub struct siginfo {
++pub __bindgen_anon_1: siginfo__bindgen_ty_1,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub struct siginfo__bindgen_ty_1__bindgen_ty_1 {
++pub si_signo: crate::ctypes::c_int,
++pub si_code: crate::ctypes::c_int,
++pub si_errno: crate::ctypes::c_int,
++pub _sifields: __sifields,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub struct sigevent {
++pub sigev_value: sigval_t,
++pub sigev_signo: crate::ctypes::c_int,
++pub sigev_notify: crate::ctypes::c_int,
++pub _sigev_un: sigevent__bindgen_ty_1,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct sigevent__bindgen_ty_1__bindgen_ty_1 {
++pub _function: ::core::option::Option<unsafe extern "C" fn(arg1: sigval_t)>,
++pub _attribute: *mut crate::ctypes::c_void,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct statx_timestamp {
++pub tv_sec: __s64,
++pub tv_nsec: __u32,
++pub __reserved: __s32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++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,
++pub __spare0: [__u16; 1usize],
++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,
++pub stx_dio_mem_align: __u32,
++pub stx_dio_offset_align: __u32,
++pub __spare3: [__u64; 12usize],
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++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; 23usize],
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++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; 23usize],
++pub c_ispeed: speed_t,
++pub c_ospeed: speed_t,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ktermios {
++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; 23usize],
++pub c_ispeed: speed_t,
++pub c_ospeed: speed_t,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct sgttyb {
++pub sg_ispeed: crate::ctypes::c_char,
++pub sg_ospeed: crate::ctypes::c_char,
++pub sg_erase: crate::ctypes::c_char,
++pub sg_kill: crate::ctypes::c_char,
++pub sg_flags: crate::ctypes::c_int,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct tchars {
++pub t_intrc: crate::ctypes::c_char,
++pub t_quitc: crate::ctypes::c_char,
++pub t_startc: crate::ctypes::c_char,
++pub t_stopc: crate::ctypes::c_char,
++pub t_eofc: crate::ctypes::c_char,
++pub t_brkc: crate::ctypes::c_char,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ltchars {
++pub t_suspc: crate::ctypes::c_char,
++pub t_dsuspc: crate::ctypes::c_char,
++pub t_rprntc: crate::ctypes::c_char,
++pub t_flushc: crate::ctypes::c_char,
++pub t_werasc: crate::ctypes::c_char,
++pub t_lnextc: crate::ctypes::c_char,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct winsize {
++pub ws_row: crate::ctypes::c_ushort,
++pub ws_col: crate::ctypes::c_ushort,
++pub ws_xpixel: crate::ctypes::c_ushort,
++pub ws_ypixel: crate::ctypes::c_ushort,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct termio {
++pub c_iflag: crate::ctypes::c_ushort,
++pub c_oflag: crate::ctypes::c_ushort,
++pub c_cflag: crate::ctypes::c_ushort,
++pub c_lflag: crate::ctypes::c_ushort,
++pub c_line: crate::ctypes::c_char,
++pub c_cc: [crate::ctypes::c_uchar; 23usize],
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct iovec {
++pub iov_base: *mut crate::ctypes::c_void,
++pub iov_len: __kernel_size_t,
++}
++#[repr(C, packed)]
++#[derive(Copy, Clone)]
++pub struct uffd_msg {
++pub event: __u8,
++pub reserved1: __u8,
++pub reserved2: __u16,
++pub reserved3: __u32,
++pub arg: uffd_msg__bindgen_ty_1,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub struct uffd_msg__bindgen_ty_1__bindgen_ty_1 {
++pub flags: __u64,
++pub address: __u64,
++pub feat: uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct uffd_msg__bindgen_ty_1__bindgen_ty_2 {
++pub ufd: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct uffd_msg__bindgen_ty_1__bindgen_ty_3 {
++pub from: __u64,
++pub to: __u64,
++pub len: __u64,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct uffd_msg__bindgen_ty_1__bindgen_ty_4 {
++pub start: __u64,
++pub end: __u64,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct uffd_msg__bindgen_ty_1__bindgen_ty_5 {
++pub reserved1: __u64,
++pub reserved2: __u64,
++pub reserved3: __u64,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct uffdio_api {
++pub api: __u64,
++pub features: __u64,
++pub ioctls: __u64,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct uffdio_range {
++pub start: __u64,
++pub len: __u64,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct uffdio_register {
++pub range: uffdio_range,
++pub mode: __u64,
++pub ioctls: __u64,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct uffdio_copy {
++pub dst: __u64,
++pub src: __u64,
++pub len: __u64,
++pub mode: __u64,
++pub copy: __s64,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct uffdio_zeropage {
++pub range: uffdio_range,
++pub mode: __u64,
++pub zeropage: __s64,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct uffdio_writeprotect {
++pub range: uffdio_range,
++pub mode: __u64,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct uffdio_continue {
++pub range: uffdio_range,
++pub mode: __u64,
++pub mapped: __s64,
++}
++#[repr(C)]
++#[derive(Debug)]
++pub struct linux_dirent64 {
++pub d_ino: crate::ctypes::c_ulong,
++pub d_off: crate::ctypes::c_long,
++pub d_reclen: __u16,
++pub d_type: __u8,
++pub d_name: __IncompleteArrayField<crate::ctypes::c_char>,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct stat {
++pub st_dev: crate::ctypes::c_uint,
++pub st_pad0: [crate::ctypes::c_uint; 3usize],
++pub st_ino: crate::ctypes::c_ulong,
++pub st_mode: __kernel_mode_t,
++pub st_nlink: __u32,
++pub st_uid: __kernel_uid32_t,
++pub st_gid: __kernel_gid32_t,
++pub st_rdev: crate::ctypes::c_uint,
++pub st_pad1: [crate::ctypes::c_uint; 3usize],
++pub st_size: crate::ctypes::c_long,
++pub st_atime: crate::ctypes::c_uint,
++pub st_atime_nsec: crate::ctypes::c_uint,
++pub st_mtime: crate::ctypes::c_uint,
++pub st_mtime_nsec: crate::ctypes::c_uint,
++pub st_ctime: crate::ctypes::c_uint,
++pub st_ctime_nsec: crate::ctypes::c_uint,
++pub st_blksize: crate::ctypes::c_uint,
++pub st_pad2: crate::ctypes::c_uint,
++pub st_blocks: crate::ctypes::c_ulong,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct statfs {
++pub f_type: crate::ctypes::c_long,
++pub f_bsize: crate::ctypes::c_long,
++pub f_frsize: crate::ctypes::c_long,
++pub f_blocks: crate::ctypes::c_long,
++pub f_bfree: crate::ctypes::c_long,
++pub f_files: crate::ctypes::c_long,
++pub f_ffree: crate::ctypes::c_long,
++pub f_bavail: crate::ctypes::c_long,
++pub f_fsid: __kernel_fsid_t,
++pub f_namelen: crate::ctypes::c_long,
++pub f_flags: crate::ctypes::c_long,
++pub f_spare: [crate::ctypes::c_long; 5usize],
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct statfs64 {
++pub f_type: crate::ctypes::c_long,
++pub f_bsize: crate::ctypes::c_long,
++pub f_frsize: crate::ctypes::c_long,
++pub f_blocks: crate::ctypes::c_long,
++pub f_bfree: crate::ctypes::c_long,
++pub f_files: crate::ctypes::c_long,
++pub f_ffree: crate::ctypes::c_long,
++pub f_bavail: crate::ctypes::c_long,
++pub f_fsid: __kernel_fsid_t,
++pub f_namelen: crate::ctypes::c_long,
++pub f_flags: crate::ctypes::c_long,
++pub f_spare: [crate::ctypes::c_long; 5usize],
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct compat_statfs64 {
++pub f_type: __u32,
++pub f_bsize: __u32,
++pub f_frsize: __u32,
++pub __pad: __u32,
++pub f_blocks: __u64,
++pub f_bfree: __u64,
++pub f_files: __u64,
++pub f_ffree: __u64,
++pub f_bavail: __u64,
++pub f_fsid: __kernel_fsid_t,
++pub f_namelen: __u32,
++pub f_flags: __u32,
++pub f_spare: [__u32; 5usize],
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct user_desc {
++pub entry_number: crate::ctypes::c_uint,
++pub base_addr: crate::ctypes::c_uint,
++pub limit: crate::ctypes::c_uint,
++pub _bitfield_align_1: [u8; 0],
++pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
++pub __bindgen_padding_0: [u8; 3usize],
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct kernel_sigset_t {
++pub sig: [crate::ctypes::c_ulong; 2usize],
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct kernel_sigaction {
++pub sa_handler_kernel: __kernel_sighandler_t,
++pub sa_flags: crate::ctypes::c_ulong,
++pub sa_mask: kernel_sigset_t,
++}
++pub const LINUX_VERSION_CODE: u32 = 393984;
++pub const LINUX_VERSION_MAJOR: u32 = 6;
++pub const LINUX_VERSION_PATCHLEVEL: u32 = 3;
++pub const LINUX_VERSION_SUBLEVEL: u32 = 0;
++pub const AT_SYSINFO_EHDR: u32 = 33;
++pub const AT_VECTOR_SIZE_ARCH: u32 = 1;
++pub const AT_NULL: u32 = 0;
++pub const AT_IGNORE: u32 = 1;
++pub const AT_EXECFD: u32 = 2;
++pub const AT_PHDR: u32 = 3;
++pub const AT_PHENT: u32 = 4;
++pub const AT_PHNUM: u32 = 5;
++pub const AT_PAGESZ: u32 = 6;
++pub const AT_BASE: u32 = 7;
++pub const AT_FLAGS: u32 = 8;
++pub const AT_ENTRY: u32 = 9;
++pub const AT_NOTELF: u32 = 10;
++pub const AT_UID: u32 = 11;
++pub const AT_EUID: u32 = 12;
++pub const AT_GID: u32 = 13;
++pub const AT_EGID: u32 = 14;
++pub const AT_PLATFORM: u32 = 15;
++pub const AT_HWCAP: u32 = 16;
++pub const AT_CLKTCK: u32 = 17;
++pub const AT_SECURE: u32 = 23;
++pub const AT_BASE_PLATFORM: u32 = 24;
++pub const AT_RANDOM: u32 = 25;
++pub const AT_HWCAP2: u32 = 26;
++pub const AT_RSEQ_FEATURE_SIZE: u32 = 27;
++pub const AT_RSEQ_ALIGN: u32 = 28;
++pub const AT_EXECFN: u32 = 31;
++pub const AT_MINSIGSTKSZ: u32 = 51;
++pub const __FD_SETSIZE: u32 = 1024;
++pub const _MIPS_ISA_MIPS1: u32 = 1;
++pub const _MIPS_ISA_MIPS2: u32 = 2;
++pub const _MIPS_ISA_MIPS3: u32 = 3;
++pub const _MIPS_ISA_MIPS4: u32 = 4;
++pub const _MIPS_ISA_MIPS5: u32 = 5;
++pub const _MIPS_ISA_MIPS32: u32 = 6;
++pub const _MIPS_ISA_MIPS64: u32 = 7;
++pub const _MIPS_SIM_ABI32: u32 = 1;
++pub const _MIPS_SIM_NABI32: u32 = 2;
++pub const _MIPS_SIM_ABI64: u32 = 3;
++pub const _LINUX_CAPABILITY_VERSION_1: u32 = 429392688;
++pub const _LINUX_CAPABILITY_U32S_1: u32 = 1;
++pub const _LINUX_CAPABILITY_VERSION_2: u32 = 537333798;
++pub const _LINUX_CAPABILITY_U32S_2: u32 = 2;
++pub const _LINUX_CAPABILITY_VERSION_3: u32 = 537396514;
++pub const _LINUX_CAPABILITY_U32S_3: u32 = 2;
++pub const VFS_CAP_REVISION_MASK: u32 = 4278190080;
++pub const VFS_CAP_REVISION_SHIFT: u32 = 24;
++pub const VFS_CAP_FLAGS_MASK: i64 = -4278190081;
++pub const VFS_CAP_FLAGS_EFFECTIVE: u32 = 1;
++pub const VFS_CAP_REVISION_1: u32 = 16777216;
++pub const VFS_CAP_U32_1: u32 = 1;
++pub const VFS_CAP_REVISION_2: u32 = 33554432;
++pub const VFS_CAP_U32_2: u32 = 2;
++pub const VFS_CAP_REVISION_3: u32 = 50331648;
++pub const VFS_CAP_U32_3: u32 = 2;
++pub const VFS_CAP_U32: u32 = 2;
++pub const VFS_CAP_REVISION: u32 = 50331648;
++pub const _LINUX_CAPABILITY_VERSION: u32 = 429392688;
++pub const _LINUX_CAPABILITY_U32S: u32 = 1;
++pub const CAP_CHOWN: u32 = 0;
++pub const CAP_DAC_OVERRIDE: u32 = 1;
++pub const CAP_DAC_READ_SEARCH: u32 = 2;
++pub const CAP_FOWNER: u32 = 3;
++pub const CAP_FSETID: u32 = 4;
++pub const CAP_KILL: u32 = 5;
++pub const CAP_SETGID: u32 = 6;
++pub const CAP_SETUID: u32 = 7;
++pub const CAP_SETPCAP: u32 = 8;
++pub const CAP_LINUX_IMMUTABLE: u32 = 9;
++pub const CAP_NET_BIND_SERVICE: u32 = 10;
++pub const CAP_NET_BROADCAST: u32 = 11;
++pub const CAP_NET_ADMIN: u32 = 12;
++pub const CAP_NET_RAW: u32 = 13;
++pub const CAP_IPC_LOCK: u32 = 14;
++pub const CAP_IPC_OWNER: u32 = 15;
++pub const CAP_SYS_MODULE: u32 = 16;
++pub const CAP_SYS_RAWIO: u32 = 17;
++pub const CAP_SYS_CHROOT: u32 = 18;
++pub const CAP_SYS_PTRACE: u32 = 19;
++pub const CAP_SYS_PACCT: u32 = 20;
++pub const CAP_SYS_ADMIN: u32 = 21;
++pub const CAP_SYS_BOOT: u32 = 22;
++pub const CAP_SYS_NICE: u32 = 23;
++pub const CAP_SYS_RESOURCE: u32 = 24;
++pub const CAP_SYS_TIME: u32 = 25;
++pub const CAP_SYS_TTY_CONFIG: u32 = 26;
++pub const CAP_MKNOD: u32 = 27;
++pub const CAP_LEASE: u32 = 28;
++pub const CAP_AUDIT_WRITE: u32 = 29;
++pub const CAP_AUDIT_CONTROL: u32 = 30;
++pub const CAP_SETFCAP: u32 = 31;
++pub const CAP_MAC_OVERRIDE: u32 = 32;
++pub const CAP_MAC_ADMIN: u32 = 33;
++pub const CAP_SYSLOG: u32 = 34;
++pub const CAP_WAKE_ALARM: u32 = 35;
++pub const CAP_BLOCK_SUSPEND: u32 = 36;
++pub const CAP_AUDIT_READ: u32 = 37;
++pub const CAP_PERFMON: u32 = 38;
++pub const CAP_BPF: u32 = 39;
++pub const CAP_CHECKPOINT_RESTORE: u32 = 40;
++pub const CAP_LAST_CAP: u32 = 40;
++pub const O_APPEND: u32 = 8;
++pub const O_DSYNC: u32 = 16;
++pub const O_NONBLOCK: u32 = 128;
++pub const O_CREAT: u32 = 256;
++pub const O_TRUNC: u32 = 512;
++pub const O_EXCL: u32 = 1024;
++pub const O_NOCTTY: u32 = 2048;
++pub const FASYNC: u32 = 4096;
++pub const O_LARGEFILE: u32 = 8192;
++pub const __O_SYNC: u32 = 16384;
++pub const O_SYNC: u32 = 16400;
++pub const O_DIRECT: u32 = 32768;
++pub const F_GETLK: u32 = 14;
++pub const F_SETLK: u32 = 6;
++pub const F_SETLKW: u32 = 7;
++pub const F_SETOWN: u32 = 24;
++pub const F_GETOWN: u32 = 23;
++pub const O_ACCMODE: u32 = 3;
++pub const O_RDONLY: u32 = 0;
++pub const O_WRONLY: u32 = 1;
++pub const O_RDWR: u32 = 2;
++pub const O_DIRECTORY: u32 = 65536;
++pub const O_NOFOLLOW: u32 = 131072;
++pub const O_NOATIME: u32 = 262144;
++pub const O_CLOEXEC: u32 = 524288;
++pub const O_PATH: u32 = 2097152;
++pub const __O_TMPFILE: u32 = 4194304;
++pub const O_TMPFILE: u32 = 4259840;
++pub const O_TMPFILE_MASK: u32 = 4260096;
++pub const O_NDELAY: u32 = 128;
++pub const F_DUPFD: u32 = 0;
++pub const F_GETFD: u32 = 1;
++pub const F_SETFD: u32 = 2;
++pub const F_GETFL: u32 = 3;
++pub const F_SETFL: u32 = 4;
++pub const F_SETSIG: u32 = 10;
++pub const F_GETSIG: u32 = 11;
++pub const F_SETOWN_EX: u32 = 15;
++pub const F_GETOWN_EX: u32 = 16;
++pub const F_GETOWNER_UIDS: u32 = 17;
++pub const F_OFD_GETLK: u32 = 36;
++pub const F_OFD_SETLK: u32 = 37;
++pub const F_OFD_SETLKW: u32 = 38;
++pub const F_OWNER_TID: u32 = 0;
++pub const F_OWNER_PID: u32 = 1;
++pub const F_OWNER_PGRP: u32 = 2;
++pub const FD_CLOEXEC: u32 = 1;
++pub const F_RDLCK: u32 = 0;
++pub const F_WRLCK: u32 = 1;
++pub const F_UNLCK: u32 = 2;
++pub const F_EXLCK: u32 = 4;
++pub const F_SHLCK: u32 = 8;
++pub const LOCK_SH: u32 = 1;
++pub const LOCK_EX: u32 = 2;
++pub const LOCK_NB: u32 = 4;
++pub const LOCK_UN: u32 = 8;
++pub const LOCK_MAND: u32 = 32;
++pub const LOCK_READ: u32 = 64;
++pub const LOCK_WRITE: u32 = 128;
++pub const LOCK_RW: u32 = 192;
++pub const F_LINUX_SPECIFIC_BASE: u32 = 1024;
++pub const RESOLVE_NO_XDEV: u32 = 1;
++pub const RESOLVE_NO_MAGICLINKS: u32 = 2;
++pub const RESOLVE_NO_SYMLINKS: u32 = 4;
++pub const RESOLVE_BENEATH: u32 = 8;
++pub const RESOLVE_IN_ROOT: u32 = 16;
++pub const RESOLVE_CACHED: u32 = 32;
++pub const F_SETLEASE: u32 = 1024;
++pub const F_GETLEASE: u32 = 1025;
++pub const F_CANCELLK: u32 = 1029;
++pub const F_DUPFD_CLOEXEC: u32 = 1030;
++pub const F_NOTIFY: u32 = 1026;
++pub const F_SETPIPE_SZ: u32 = 1031;
++pub const F_GETPIPE_SZ: u32 = 1032;
++pub const F_ADD_SEALS: u32 = 1033;
++pub const F_GET_SEALS: u32 = 1034;
++pub const F_SEAL_SEAL: u32 = 1;
++pub const F_SEAL_SHRINK: u32 = 2;
++pub const F_SEAL_GROW: u32 = 4;
++pub const F_SEAL_WRITE: u32 = 8;
++pub const F_SEAL_FUTURE_WRITE: u32 = 16;
++pub const F_SEAL_EXEC: u32 = 32;
++pub const F_GET_RW_HINT: u32 = 1035;
++pub const F_SET_RW_HINT: u32 = 1036;
++pub const F_GET_FILE_RW_HINT: u32 = 1037;
++pub const F_SET_FILE_RW_HINT: u32 = 1038;
++pub const RWH_WRITE_LIFE_NOT_SET: u32 = 0;
++pub const RWH_WRITE_LIFE_NONE: u32 = 1;
++pub const RWH_WRITE_LIFE_SHORT: u32 = 2;
++pub const RWH_WRITE_LIFE_MEDIUM: u32 = 3;
++pub const RWH_WRITE_LIFE_LONG: u32 = 4;
++pub const RWH_WRITE_LIFE_EXTREME: u32 = 5;
++pub const RWF_WRITE_LIFE_NOT_SET: u32 = 0;
++pub const DN_ACCESS: u32 = 1;
++pub const DN_MODIFY: u32 = 2;
++pub const DN_CREATE: u32 = 4;
++pub const DN_DELETE: u32 = 8;
++pub const DN_RENAME: u32 = 16;
++pub const DN_ATTRIB: u32 = 32;
++pub const DN_MULTISHOT: u32 = 2147483648;
++pub const AT_FDCWD: i32 = -100;
++pub const AT_SYMLINK_NOFOLLOW: u32 = 256;
++pub const AT_EACCESS: u32 = 512;
++pub const AT_REMOVEDIR: u32 = 512;
++pub const AT_SYMLINK_FOLLOW: u32 = 1024;
++pub const AT_NO_AUTOMOUNT: u32 = 2048;
++pub const AT_EMPTY_PATH: u32 = 4096;
++pub const AT_STATX_SYNC_TYPE: u32 = 24576;
++pub const AT_STATX_SYNC_AS_STAT: u32 = 0;
++pub const AT_STATX_FORCE_SYNC: u32 = 8192;
++pub const AT_STATX_DONT_SYNC: u32 = 16384;
++pub const AT_RECURSIVE: u32 = 32768;
++pub const EPOLL_CLOEXEC: u32 = 524288;
++pub const EPOLL_CTL_ADD: u32 = 1;
++pub const EPOLL_CTL_DEL: u32 = 2;
++pub const EPOLL_CTL_MOD: u32 = 3;
++pub const POSIX_FADV_NORMAL: u32 = 0;
++pub const POSIX_FADV_RANDOM: u32 = 1;
++pub const POSIX_FADV_SEQUENTIAL: u32 = 2;
++pub const POSIX_FADV_WILLNEED: u32 = 3;
++pub const POSIX_FADV_DONTNEED: u32 = 4;
++pub const POSIX_FADV_NOREUSE: u32 = 5;
++pub const FALLOC_FL_KEEP_SIZE: u32 = 1;
++pub const FALLOC_FL_PUNCH_HOLE: u32 = 2;
++pub const FALLOC_FL_NO_HIDE_STALE: u32 = 4;
++pub const FALLOC_FL_COLLAPSE_RANGE: u32 = 8;
++pub const FALLOC_FL_ZERO_RANGE: u32 = 16;
++pub const FALLOC_FL_INSERT_RANGE: u32 = 32;
++pub const FALLOC_FL_UNSHARE_RANGE: u32 = 64;
++pub const NR_OPEN: u32 = 1024;
++pub const NGROUPS_MAX: u32 = 65536;
++pub const ARG_MAX: u32 = 131072;
++pub const LINK_MAX: u32 = 127;
++pub const MAX_CANON: u32 = 255;
++pub const MAX_INPUT: u32 = 255;
++pub const NAME_MAX: u32 = 255;
++pub const PATH_MAX: u32 = 4096;
++pub const PIPE_BUF: u32 = 4096;
++pub const XATTR_NAME_MAX: u32 = 255;
++pub const XATTR_SIZE_MAX: u32 = 65536;
++pub const XATTR_LIST_MAX: u32 = 65536;
++pub const RTSIG_MAX: u32 = 32;
++pub const _IOC_SIZEBITS: u32 = 13;
++pub const _IOC_DIRBITS: u32 = 3;
++pub const _IOC_NONE: u32 = 1;
++pub const _IOC_READ: u32 = 2;
++pub const _IOC_WRITE: u32 = 4;
++pub const _IOC_NRBITS: u32 = 8;
++pub const _IOC_TYPEBITS: u32 = 8;
++pub const _IOC_NRMASK: u32 = 255;
++pub const _IOC_TYPEMASK: u32 = 255;
++pub const _IOC_SIZEMASK: u32 = 8191;
++pub const _IOC_DIRMASK: u32 = 7;
++pub const _IOC_NRSHIFT: u32 = 0;
++pub const _IOC_TYPESHIFT: u32 = 8;
++pub const _IOC_SIZESHIFT: u32 = 16;
++pub const _IOC_DIRSHIFT: u32 = 29;
++pub const IOC_IN: u32 = 2147483648;
++pub const IOC_OUT: u32 = 1073741824;
++pub const IOC_INOUT: u32 = 3221225472;
++pub const IOCSIZE_MASK: u32 = 536805376;
++pub const IOCSIZE_SHIFT: u32 = 16;
++pub const FSCRYPT_POLICY_FLAGS_PAD_4: u32 = 0;
++pub const FSCRYPT_POLICY_FLAGS_PAD_8: u32 = 1;
++pub const FSCRYPT_POLICY_FLAGS_PAD_16: u32 = 2;
++pub const FSCRYPT_POLICY_FLAGS_PAD_32: u32 = 3;
++pub const FSCRYPT_POLICY_FLAGS_PAD_MASK: u32 = 3;
++pub const FSCRYPT_POLICY_FLAG_DIRECT_KEY: u32 = 4;
++pub const FSCRYPT_POLICY_FLAG_IV_INO_LBLK_64: u32 = 8;
++pub const FSCRYPT_POLICY_FLAG_IV_INO_LBLK_32: u32 = 16;
++pub const FSCRYPT_MODE_AES_256_XTS: u32 = 1;
++pub const FSCRYPT_MODE_AES_256_CTS: u32 = 4;
++pub const FSCRYPT_MODE_AES_128_CBC: u32 = 5;
++pub const FSCRYPT_MODE_AES_128_CTS: u32 = 6;
++pub const FSCRYPT_MODE_SM4_XTS: u32 = 7;
++pub const FSCRYPT_MODE_SM4_CTS: u32 = 8;
++pub const FSCRYPT_MODE_ADIANTUM: u32 = 9;
++pub const FSCRYPT_MODE_AES_256_HCTR2: u32 = 10;
++pub const FSCRYPT_POLICY_V1: u32 = 0;
++pub const FSCRYPT_KEY_DESCRIPTOR_SIZE: u32 = 8;
++pub const FSCRYPT_KEY_DESC_PREFIX: &[u8; 9] = b"fscrypt:\0";
++pub const FSCRYPT_KEY_DESC_PREFIX_SIZE: u32 = 8;
++pub const FSCRYPT_MAX_KEY_SIZE: u32 = 64;
++pub const FSCRYPT_POLICY_V2: u32 = 2;
++pub const FSCRYPT_KEY_IDENTIFIER_SIZE: u32 = 16;
++pub const FSCRYPT_KEY_SPEC_TYPE_DESCRIPTOR: u32 = 1;
++pub const FSCRYPT_KEY_SPEC_TYPE_IDENTIFIER: u32 = 2;
++pub const FSCRYPT_KEY_REMOVAL_STATUS_FLAG_FILES_BUSY: u32 = 1;
++pub const FSCRYPT_KEY_REMOVAL_STATUS_FLAG_OTHER_USERS: u32 = 2;
++pub const FSCRYPT_KEY_STATUS_ABSENT: u32 = 1;
++pub const FSCRYPT_KEY_STATUS_PRESENT: u32 = 2;
++pub const FSCRYPT_KEY_STATUS_INCOMPLETELY_REMOVED: u32 = 3;
++pub const FSCRYPT_KEY_STATUS_FLAG_ADDED_BY_SELF: u32 = 1;
++pub const FS_KEY_DESCRIPTOR_SIZE: u32 = 8;
++pub const FS_POLICY_FLAGS_PAD_4: u32 = 0;
++pub const FS_POLICY_FLAGS_PAD_8: u32 = 1;
++pub const FS_POLICY_FLAGS_PAD_16: u32 = 2;
++pub const FS_POLICY_FLAGS_PAD_32: u32 = 3;
++pub const FS_POLICY_FLAGS_PAD_MASK: u32 = 3;
++pub const FS_POLICY_FLAG_DIRECT_KEY: u32 = 4;
++pub const FS_POLICY_FLAGS_VALID: u32 = 7;
++pub const FS_ENCRYPTION_MODE_INVALID: u32 = 0;
++pub const FS_ENCRYPTION_MODE_AES_256_XTS: u32 = 1;
++pub const FS_ENCRYPTION_MODE_AES_256_GCM: u32 = 2;
++pub const FS_ENCRYPTION_MODE_AES_256_CBC: u32 = 3;
++pub const FS_ENCRYPTION_MODE_AES_256_CTS: u32 = 4;
++pub const FS_ENCRYPTION_MODE_AES_128_CBC: u32 = 5;
++pub const FS_ENCRYPTION_MODE_AES_128_CTS: u32 = 6;
++pub const FS_ENCRYPTION_MODE_ADIANTUM: u32 = 9;
++pub const FS_KEY_DESC_PREFIX: &[u8; 9] = b"fscrypt:\0";
++pub const FS_KEY_DESC_PREFIX_SIZE: u32 = 8;
++pub const FS_MAX_KEY_SIZE: u32 = 64;
++pub const MS_RDONLY: u32 = 1;
++pub const MS_NOSUID: u32 = 2;
++pub const MS_NODEV: u32 = 4;
++pub const MS_NOEXEC: u32 = 8;
++pub const MS_SYNCHRONOUS: u32 = 16;
++pub const MS_REMOUNT: u32 = 32;
++pub const MS_MANDLOCK: u32 = 64;
++pub const MS_DIRSYNC: u32 = 128;
++pub const MS_NOSYMFOLLOW: u32 = 256;
++pub const MS_NOATIME: u32 = 1024;
++pub const MS_NODIRATIME: u32 = 2048;
++pub const MS_BIND: u32 = 4096;
++pub const MS_MOVE: u32 = 8192;
++pub const MS_REC: u32 = 16384;
++pub const MS_VERBOSE: u32 = 32768;
++pub const MS_SILENT: u32 = 32768;
++pub const MS_POSIXACL: u32 = 65536;
++pub const MS_UNBINDABLE: u32 = 131072;
++pub const MS_PRIVATE: u32 = 262144;
++pub const MS_SLAVE: u32 = 524288;
++pub const MS_SHARED: u32 = 1048576;
++pub const MS_RELATIME: u32 = 2097152;
++pub const MS_KERNMOUNT: u32 = 4194304;
++pub const MS_I_VERSION: u32 = 8388608;
++pub const MS_STRICTATIME: u32 = 16777216;
++pub const MS_LAZYTIME: u32 = 33554432;
++pub const MS_SUBMOUNT: u32 = 67108864;
++pub const MS_NOREMOTELOCK: u32 = 134217728;
++pub const MS_NOSEC: u32 = 268435456;
++pub const MS_BORN: u32 = 536870912;
++pub const MS_ACTIVE: u32 = 1073741824;
++pub const MS_NOUSER: u32 = 2147483648;
++pub const MS_RMT_MASK: u32 = 41943121;
++pub const MS_MGC_VAL: u32 = 3236757504;
++pub const MS_MGC_MSK: u32 = 4294901760;
++pub const OPEN_TREE_CLONE: u32 = 1;
++pub const OPEN_TREE_CLOEXEC: u32 = 524288;
++pub const MOVE_MOUNT_F_SYMLINKS: u32 = 1;
++pub const MOVE_MOUNT_F_AUTOMOUNTS: u32 = 2;
++pub const MOVE_MOUNT_F_EMPTY_PATH: u32 = 4;
++pub const MOVE_MOUNT_T_SYMLINKS: u32 = 16;
++pub const MOVE_MOUNT_T_AUTOMOUNTS: u32 = 32;
++pub const MOVE_MOUNT_T_EMPTY_PATH: u32 = 64;
++pub const MOVE_MOUNT_SET_GROUP: u32 = 256;
++pub const MOVE_MOUNT__MASK: u32 = 375;
++pub const FSOPEN_CLOEXEC: u32 = 1;
++pub const FSPICK_CLOEXEC: u32 = 1;
++pub const FSPICK_SYMLINK_NOFOLLOW: u32 = 2;
++pub const FSPICK_NO_AUTOMOUNT: u32 = 4;
++pub const FSPICK_EMPTY_PATH: u32 = 8;
++pub const FSMOUNT_CLOEXEC: u32 = 1;
++pub const MOUNT_ATTR_RDONLY: u32 = 1;
++pub const MOUNT_ATTR_NOSUID: u32 = 2;
++pub const MOUNT_ATTR_NODEV: u32 = 4;
++pub const MOUNT_ATTR_NOEXEC: u32 = 8;
++pub const MOUNT_ATTR__ATIME: u32 = 112;
++pub const MOUNT_ATTR_RELATIME: u32 = 0;
++pub const MOUNT_ATTR_NOATIME: u32 = 16;
++pub const MOUNT_ATTR_STRICTATIME: u32 = 32;
++pub const MOUNT_ATTR_NODIRATIME: u32 = 128;
++pub const MOUNT_ATTR_IDMAP: u32 = 1048576;
++pub const MOUNT_ATTR_NOSYMFOLLOW: u32 = 2097152;
++pub const MOUNT_ATTR_SIZE_VER0: u32 = 32;
++pub const INR_OPEN_CUR: u32 = 1024;
++pub const INR_OPEN_MAX: u32 = 4096;
++pub const BLOCK_SIZE_BITS: u32 = 10;
++pub const BLOCK_SIZE: u32 = 1024;
++pub const SEEK_SET: u32 = 0;
++pub const SEEK_CUR: u32 = 1;
++pub const SEEK_END: u32 = 2;
++pub const SEEK_DATA: u32 = 3;
++pub const SEEK_HOLE: u32 = 4;
++pub const SEEK_MAX: u32 = 4;
++pub const RENAME_NOREPLACE: u32 = 1;
++pub const RENAME_EXCHANGE: u32 = 2;
++pub const RENAME_WHITEOUT: u32 = 4;
++pub const FILE_DEDUPE_RANGE_SAME: u32 = 0;
++pub const FILE_DEDUPE_RANGE_DIFFERS: u32 = 1;
++pub const NR_FILE: u32 = 8192;
++pub const FS_XFLAG_REALTIME: u32 = 1;
++pub const FS_XFLAG_PREALLOC: u32 = 2;
++pub const FS_XFLAG_IMMUTABLE: u32 = 8;
++pub const FS_XFLAG_APPEND: u32 = 16;
++pub const FS_XFLAG_SYNC: u32 = 32;
++pub const FS_XFLAG_NOATIME: u32 = 64;
++pub const FS_XFLAG_NODUMP: u32 = 128;
++pub const FS_XFLAG_RTINHERIT: u32 = 256;
++pub const FS_XFLAG_PROJINHERIT: u32 = 512;
++pub const FS_XFLAG_NOSYMLINKS: u32 = 1024;
++pub const FS_XFLAG_EXTSIZE: u32 = 2048;
++pub const FS_XFLAG_EXTSZINHERIT: u32 = 4096;
++pub const FS_XFLAG_NODEFRAG: u32 = 8192;
++pub const FS_XFLAG_FILESTREAM: u32 = 16384;
++pub const FS_XFLAG_DAX: u32 = 32768;
++pub const FS_XFLAG_COWEXTSIZE: u32 = 65536;
++pub const FS_XFLAG_HASATTR: u32 = 2147483648;
++pub const BMAP_IOCTL: u32 = 1;
++pub const FSLABEL_MAX: u32 = 256;
++pub const FS_SECRM_FL: u32 = 1;
++pub const FS_UNRM_FL: u32 = 2;
++pub const FS_COMPR_FL: u32 = 4;
++pub const FS_SYNC_FL: u32 = 8;
++pub const FS_IMMUTABLE_FL: u32 = 16;
++pub const FS_APPEND_FL: u32 = 32;
++pub const FS_NODUMP_FL: u32 = 64;
++pub const FS_NOATIME_FL: u32 = 128;
++pub const FS_DIRTY_FL: u32 = 256;
++pub const FS_COMPRBLK_FL: u32 = 512;
++pub const FS_NOCOMP_FL: u32 = 1024;
++pub const FS_ENCRYPT_FL: u32 = 2048;
++pub const FS_BTREE_FL: u32 = 4096;
++pub const FS_INDEX_FL: u32 = 4096;
++pub const FS_IMAGIC_FL: u32 = 8192;
++pub const FS_JOURNAL_DATA_FL: u32 = 16384;
++pub const FS_NOTAIL_FL: u32 = 32768;
++pub const FS_DIRSYNC_FL: u32 = 65536;
++pub const FS_TOPDIR_FL: u32 = 131072;
++pub const FS_HUGE_FILE_FL: u32 = 262144;
++pub const FS_EXTENT_FL: u32 = 524288;
++pub const FS_VERITY_FL: u32 = 1048576;
++pub const FS_EA_INODE_FL: u32 = 2097152;
++pub const FS_EOFBLOCKS_FL: u32 = 4194304;
++pub const FS_NOCOW_FL: u32 = 8388608;
++pub const FS_DAX_FL: u32 = 33554432;
++pub const FS_INLINE_DATA_FL: u32 = 268435456;
++pub const FS_PROJINHERIT_FL: u32 = 536870912;
++pub const FS_CASEFOLD_FL: u32 = 1073741824;
++pub const FS_RESERVED_FL: u32 = 2147483648;
++pub const FS_FL_USER_VISIBLE: u32 = 253951;
++pub const FS_FL_USER_MODIFIABLE: u32 = 229631;
++pub const SYNC_FILE_RANGE_WAIT_BEFORE: u32 = 1;
++pub const SYNC_FILE_RANGE_WRITE: u32 = 2;
++pub const SYNC_FILE_RANGE_WAIT_AFTER: u32 = 4;
++pub const SYNC_FILE_RANGE_WRITE_AND_WAIT: u32 = 7;
++pub const FUTEX_WAIT: u32 = 0;
++pub const FUTEX_WAKE: u32 = 1;
++pub const FUTEX_FD: u32 = 2;
++pub const FUTEX_REQUEUE: u32 = 3;
++pub const FUTEX_CMP_REQUEUE: u32 = 4;
++pub const FUTEX_WAKE_OP: u32 = 5;
++pub const FUTEX_LOCK_PI: u32 = 6;
++pub const FUTEX_UNLOCK_PI: u32 = 7;
++pub const FUTEX_TRYLOCK_PI: u32 = 8;
++pub const FUTEX_WAIT_BITSET: u32 = 9;
++pub const FUTEX_WAKE_BITSET: u32 = 10;
++pub const FUTEX_WAIT_REQUEUE_PI: u32 = 11;
++pub const FUTEX_CMP_REQUEUE_PI: u32 = 12;
++pub const FUTEX_LOCK_PI2: u32 = 13;
++pub const FUTEX_PRIVATE_FLAG: u32 = 128;
++pub const FUTEX_CLOCK_REALTIME: u32 = 256;
++pub const FUTEX_CMD_MASK: i32 = -385;
++pub const FUTEX_WAIT_PRIVATE: u32 = 128;
++pub const FUTEX_WAKE_PRIVATE: u32 = 129;
++pub const FUTEX_REQUEUE_PRIVATE: u32 = 131;
++pub const FUTEX_CMP_REQUEUE_PRIVATE: u32 = 132;
++pub const FUTEX_WAKE_OP_PRIVATE: u32 = 133;
++pub const FUTEX_LOCK_PI_PRIVATE: u32 = 134;
++pub const FUTEX_LOCK_PI2_PRIVATE: u32 = 141;
++pub const FUTEX_UNLOCK_PI_PRIVATE: u32 = 135;
++pub const FUTEX_TRYLOCK_PI_PRIVATE: u32 = 136;
++pub const FUTEX_WAIT_BITSET_PRIVATE: u32 = 137;
++pub const FUTEX_WAKE_BITSET_PRIVATE: u32 = 138;
++pub const FUTEX_WAIT_REQUEUE_PI_PRIVATE: u32 = 139;
++pub const FUTEX_CMP_REQUEUE_PI_PRIVATE: u32 = 140;
++pub const FUTEX_32: u32 = 2;
++pub const FUTEX_WAITV_MAX: u32 = 128;
++pub const FUTEX_WAITERS: u32 = 2147483648;
++pub const FUTEX_OWNER_DIED: u32 = 1073741824;
++pub const FUTEX_TID_MASK: u32 = 1073741823;
++pub const ROBUST_LIST_LIMIT: u32 = 2048;
++pub const FUTEX_BITSET_MATCH_ANY: u32 = 4294967295;
++pub const FUTEX_OP_SET: u32 = 0;
++pub const FUTEX_OP_ADD: u32 = 1;
++pub const FUTEX_OP_OR: u32 = 2;
++pub const FUTEX_OP_ANDN: u32 = 3;
++pub const FUTEX_OP_XOR: u32 = 4;
++pub const FUTEX_OP_OPARG_SHIFT: u32 = 8;
++pub const FUTEX_OP_CMP_EQ: u32 = 0;
++pub const FUTEX_OP_CMP_NE: u32 = 1;
++pub const FUTEX_OP_CMP_LT: u32 = 2;
++pub const FUTEX_OP_CMP_LE: u32 = 3;
++pub const FUTEX_OP_CMP_GT: u32 = 4;
++pub const FUTEX_OP_CMP_GE: u32 = 5;
++pub const IN_ACCESS: u32 = 1;
++pub const IN_MODIFY: u32 = 2;
++pub const IN_ATTRIB: u32 = 4;
++pub const IN_CLOSE_WRITE: u32 = 8;
++pub const IN_CLOSE_NOWRITE: u32 = 16;
++pub const IN_OPEN: u32 = 32;
++pub const IN_MOVED_FROM: u32 = 64;
++pub const IN_MOVED_TO: u32 = 128;
++pub const IN_CREATE: u32 = 256;
++pub const IN_DELETE: u32 = 512;
++pub const IN_DELETE_SELF: u32 = 1024;
++pub const IN_MOVE_SELF: u32 = 2048;
++pub const IN_UNMOUNT: u32 = 8192;
++pub const IN_Q_OVERFLOW: u32 = 16384;
++pub const IN_IGNORED: u32 = 32768;
++pub const IN_CLOSE: u32 = 24;
++pub const IN_MOVE: u32 = 192;
++pub const IN_ONLYDIR: u32 = 16777216;
++pub const IN_DONT_FOLLOW: u32 = 33554432;
++pub const IN_EXCL_UNLINK: u32 = 67108864;
++pub const IN_MASK_CREATE: u32 = 268435456;
++pub const IN_MASK_ADD: u32 = 536870912;
++pub const IN_ISDIR: u32 = 1073741824;
++pub const IN_ONESHOT: u32 = 2147483648;
++pub const IN_ALL_EVENTS: u32 = 4095;
++pub const IN_CLOEXEC: u32 = 524288;
++pub const IN_NONBLOCK: u32 = 128;
++pub const ADFS_SUPER_MAGIC: u32 = 44533;
++pub const AFFS_SUPER_MAGIC: u32 = 44543;
++pub const AFS_SUPER_MAGIC: u32 = 1397113167;
++pub const AUTOFS_SUPER_MAGIC: u32 = 391;
++pub const CEPH_SUPER_MAGIC: u32 = 12805120;
++pub const CODA_SUPER_MAGIC: u32 = 1937076805;
++pub const CRAMFS_MAGIC: u32 = 684539205;
++pub const CRAMFS_MAGIC_WEND: u32 = 1161678120;
++pub const DEBUGFS_MAGIC: u32 = 1684170528;
++pub const SECURITYFS_MAGIC: u32 = 1935894131;
++pub const SELINUX_MAGIC: u32 = 4185718668;
++pub const SMACK_MAGIC: u32 = 1128357203;
++pub const RAMFS_MAGIC: u32 = 2240043254;
++pub const TMPFS_MAGIC: u32 = 16914836;
++pub const HUGETLBFS_MAGIC: u32 = 2508478710;
++pub const SQUASHFS_MAGIC: u32 = 1936814952;
++pub const ECRYPTFS_SUPER_MAGIC: u32 = 61791;
++pub const EFS_SUPER_MAGIC: u32 = 4278867;
++pub const EROFS_SUPER_MAGIC_V1: u32 = 3774210530;
++pub const EXT2_SUPER_MAGIC: u32 = 61267;
++pub const EXT3_SUPER_MAGIC: u32 = 61267;
++pub const XENFS_SUPER_MAGIC: u32 = 2881100148;
++pub const EXT4_SUPER_MAGIC: u32 = 61267;
++pub const BTRFS_SUPER_MAGIC: u32 = 2435016766;
++pub const NILFS_SUPER_MAGIC: u32 = 13364;
++pub const F2FS_SUPER_MAGIC: u32 = 4076150800;
++pub const HPFS_SUPER_MAGIC: u32 = 4187351113;
++pub const ISOFS_SUPER_MAGIC: u32 = 38496;
++pub const JFFS2_SUPER_MAGIC: u32 = 29366;
++pub const XFS_SUPER_MAGIC: u32 = 1481003842;
++pub const PSTOREFS_MAGIC: u32 = 1634035564;
++pub const EFIVARFS_MAGIC: u32 = 3730735588;
++pub const HOSTFS_SUPER_MAGIC: u32 = 12648430;
++pub const OVERLAYFS_SUPER_MAGIC: u32 = 2035054128;
++pub const FUSE_SUPER_MAGIC: u32 = 1702057286;
++pub const MINIX_SUPER_MAGIC: u32 = 4991;
++pub const MINIX_SUPER_MAGIC2: u32 = 5007;
++pub const MINIX2_SUPER_MAGIC: u32 = 9320;
++pub const MINIX2_SUPER_MAGIC2: u32 = 9336;
++pub const MINIX3_SUPER_MAGIC: u32 = 19802;
++pub const MSDOS_SUPER_MAGIC: u32 = 19780;
++pub const EXFAT_SUPER_MAGIC: u32 = 538032816;
++pub const NCP_SUPER_MAGIC: u32 = 22092;
++pub const NFS_SUPER_MAGIC: u32 = 26985;
++pub const OCFS2_SUPER_MAGIC: u32 = 1952539503;
++pub const OPENPROM_SUPER_MAGIC: u32 = 40865;
++pub const QNX4_SUPER_MAGIC: u32 = 47;
++pub const QNX6_SUPER_MAGIC: u32 = 1746473250;
++pub const AFS_FS_MAGIC: u32 = 1799439955;
++pub const REISERFS_SUPER_MAGIC: u32 = 1382369651;
++pub const REISERFS_SUPER_MAGIC_STRING: &[u8; 9] = b"ReIsErFs\0";
++pub const REISER2FS_SUPER_MAGIC_STRING: &[u8; 10] = b"ReIsEr2Fs\0";
++pub const REISER2FS_JR_SUPER_MAGIC_STRING: &[u8; 10] = b"ReIsEr3Fs\0";
++pub const SMB_SUPER_MAGIC: u32 = 20859;
++pub const CIFS_SUPER_MAGIC: u32 = 4283649346;
++pub const SMB2_SUPER_MAGIC: u32 = 4266872130;
++pub const CGROUP_SUPER_MAGIC: u32 = 2613483;
++pub const CGROUP2_SUPER_MAGIC: u32 = 1667723888;
++pub const RDTGROUP_SUPER_MAGIC: u32 = 124082209;
++pub const STACK_END_MAGIC: u32 = 1470918301;
++pub const TRACEFS_MAGIC: u32 = 1953653091;
++pub const V9FS_MAGIC: u32 = 16914839;
++pub const BDEVFS_MAGIC: u32 = 1650746742;
++pub const DAXFS_MAGIC: u32 = 1684300152;
++pub const BINFMTFS_MAGIC: u32 = 1112100429;
++pub const DEVPTS_SUPER_MAGIC: u32 = 7377;
++pub const BINDERFS_SUPER_MAGIC: u32 = 1819242352;
++pub const FUTEXFS_SUPER_MAGIC: u32 = 195894762;
++pub const PIPEFS_MAGIC: u32 = 1346981957;
++pub const PROC_SUPER_MAGIC: u32 = 40864;
++pub const SOCKFS_MAGIC: u32 = 1397703499;
++pub const SYSFS_MAGIC: u32 = 1650812274;
++pub const USBDEVICE_SUPER_MAGIC: u32 = 40866;
++pub const MTD_INODE_FS_MAGIC: u32 = 288389204;
++pub const ANON_INODE_FS_MAGIC: u32 = 151263540;
++pub const BTRFS_TEST_MAGIC: u32 = 1936880249;
++pub const NSFS_MAGIC: u32 = 1853056627;
++pub const BPF_FS_MAGIC: u32 = 3405662737;
++pub const AAFS_MAGIC: u32 = 1513908720;
++pub const ZONEFS_MAGIC: u32 = 1515144787;
++pub const UDF_SUPER_MAGIC: u32 = 352400198;
++pub const DMA_BUF_MAGIC: u32 = 1145913666;
++pub const DEVMEM_MAGIC: u32 = 1162691661;
++pub const SECRETMEM_MAGIC: u32 = 1397048141;
++pub const PROT_NONE: u32 = 0;
++pub const PROT_READ: u32 = 1;
++pub const PROT_WRITE: u32 = 2;
++pub const PROT_EXEC: u32 = 4;
++pub const PROT_SEM: u32 = 16;
++pub const PROT_GROWSDOWN: u32 = 16777216;
++pub const PROT_GROWSUP: u32 = 33554432;
++pub const MAP_TYPE: u32 = 15;
++pub const MAP_FIXED: u32 = 16;
++pub const MAP_RENAME: u32 = 32;
++pub const MAP_AUTOGROW: u32 = 64;
++pub const MAP_LOCAL: u32 = 128;
++pub const MAP_AUTORSRV: u32 = 256;
++pub const MAP_NORESERVE: u32 = 1024;
++pub const MAP_ANONYMOUS: u32 = 2048;
++pub const MAP_GROWSDOWN: u32 = 4096;
++pub const MAP_DENYWRITE: u32 = 8192;
++pub const MAP_EXECUTABLE: u32 = 16384;
++pub const MAP_LOCKED: u32 = 32768;
++pub const MAP_POPULATE: u32 = 65536;
++pub const MAP_NONBLOCK: u32 = 131072;
++pub const MAP_STACK: u32 = 262144;
++pub const MAP_HUGETLB: u32 = 524288;
++pub const MAP_FIXED_NOREPLACE: u32 = 1048576;
++pub const MS_ASYNC: u32 = 1;
++pub const MS_INVALIDATE: u32 = 2;
++pub const MS_SYNC: u32 = 4;
++pub const MCL_CURRENT: u32 = 1;
++pub const MCL_FUTURE: u32 = 2;
++pub const MCL_ONFAULT: u32 = 4;
++pub const MLOCK_ONFAULT: u32 = 1;
++pub const MADV_NORMAL: u32 = 0;
++pub const MADV_RANDOM: u32 = 1;
++pub const MADV_SEQUENTIAL: u32 = 2;
++pub const MADV_WILLNEED: u32 = 3;
++pub const MADV_DONTNEED: u32 = 4;
++pub const MADV_FREE: u32 = 8;
++pub const MADV_REMOVE: u32 = 9;
++pub const MADV_DONTFORK: u32 = 10;
++pub const MADV_DOFORK: u32 = 11;
++pub const MADV_MERGEABLE: u32 = 12;
++pub const MADV_UNMERGEABLE: u32 = 13;
++pub const MADV_HWPOISON: u32 = 100;
++pub const MADV_HUGEPAGE: u32 = 14;
++pub const MADV_NOHUGEPAGE: u32 = 15;
++pub const MADV_DONTDUMP: u32 = 16;
++pub const MADV_DODUMP: u32 = 17;
++pub const MADV_WIPEONFORK: u32 = 18;
++pub const MADV_KEEPONFORK: u32 = 19;
++pub const MADV_COLD: u32 = 20;
++pub const MADV_PAGEOUT: u32 = 21;
++pub const MADV_POPULATE_READ: u32 = 22;
++pub const MADV_POPULATE_WRITE: u32 = 23;
++pub const MADV_DONTNEED_LOCKED: u32 = 24;
++pub const MADV_COLLAPSE: u32 = 25;
++pub const MAP_FILE: u32 = 0;
++pub const PKEY_DISABLE_ACCESS: u32 = 1;
++pub const PKEY_DISABLE_WRITE: u32 = 2;
++pub const PKEY_ACCESS_MASK: u32 = 3;
++pub const HUGETLB_FLAG_ENCODE_SHIFT: u32 = 26;
++pub const HUGETLB_FLAG_ENCODE_MASK: u32 = 63;
++pub const HUGETLB_FLAG_ENCODE_16KB: u32 = 939524096;
++pub const HUGETLB_FLAG_ENCODE_64KB: u32 = 1073741824;
++pub const HUGETLB_FLAG_ENCODE_512KB: u32 = 1275068416;
++pub const HUGETLB_FLAG_ENCODE_1MB: u32 = 1342177280;
++pub const HUGETLB_FLAG_ENCODE_2MB: u32 = 1409286144;
++pub const HUGETLB_FLAG_ENCODE_8MB: u32 = 1543503872;
++pub const HUGETLB_FLAG_ENCODE_16MB: u32 = 1610612736;
++pub const HUGETLB_FLAG_ENCODE_32MB: u32 = 1677721600;
++pub const HUGETLB_FLAG_ENCODE_256MB: u32 = 1879048192;
++pub const HUGETLB_FLAG_ENCODE_512MB: u32 = 1946157056;
++pub const HUGETLB_FLAG_ENCODE_1GB: u32 = 2013265920;
++pub const HUGETLB_FLAG_ENCODE_2GB: u32 = 2080374784;
++pub const HUGETLB_FLAG_ENCODE_16GB: u32 = 2281701376;
++pub const MREMAP_MAYMOVE: u32 = 1;
++pub const MREMAP_FIXED: u32 = 2;
++pub const MREMAP_DONTUNMAP: u32 = 4;
++pub const OVERCOMMIT_GUESS: u32 = 0;
++pub const OVERCOMMIT_ALWAYS: u32 = 1;
++pub const OVERCOMMIT_NEVER: u32 = 2;
++pub const MAP_SHARED: u32 = 1;
++pub const MAP_PRIVATE: u32 = 2;
++pub const MAP_SHARED_VALIDATE: u32 = 3;
++pub const MAP_HUGE_SHIFT: u32 = 26;
++pub const MAP_HUGE_MASK: u32 = 63;
++pub const MAP_HUGE_16KB: u32 = 939524096;
++pub const MAP_HUGE_64KB: u32 = 1073741824;
++pub const MAP_HUGE_512KB: u32 = 1275068416;
++pub const MAP_HUGE_1MB: u32 = 1342177280;
++pub const MAP_HUGE_2MB: u32 = 1409286144;
++pub const MAP_HUGE_8MB: u32 = 1543503872;
++pub const MAP_HUGE_16MB: u32 = 1610612736;
++pub const MAP_HUGE_32MB: u32 = 1677721600;
++pub const MAP_HUGE_256MB: u32 = 1879048192;
++pub const MAP_HUGE_512MB: u32 = 1946157056;
++pub const MAP_HUGE_1GB: u32 = 2013265920;
++pub const MAP_HUGE_2GB: u32 = 2080374784;
++pub const MAP_HUGE_16GB: u32 = 2281701376;
++pub const POLLWRBAND: u32 = 256;
++pub const POLLIN: u32 = 1;
++pub const POLLPRI: u32 = 2;
++pub const POLLOUT: u32 = 4;
++pub const POLLERR: u32 = 8;
++pub const POLLHUP: u32 = 16;
++pub const POLLNVAL: u32 = 32;
++pub const POLLRDNORM: u32 = 64;
++pub const POLLRDBAND: u32 = 128;
++pub const POLLMSG: u32 = 1024;
++pub const POLLREMOVE: u32 = 4096;
++pub const POLLRDHUP: u32 = 8192;
++pub const GRND_NONBLOCK: u32 = 1;
++pub const GRND_RANDOM: u32 = 2;
++pub const GRND_INSECURE: u32 = 4;
++pub const LINUX_REBOOT_MAGIC1: u32 = 4276215469;
++pub const LINUX_REBOOT_MAGIC2: u32 = 672274793;
++pub const LINUX_REBOOT_MAGIC2A: u32 = 85072278;
++pub const LINUX_REBOOT_MAGIC2B: u32 = 369367448;
++pub const LINUX_REBOOT_MAGIC2C: u32 = 537993216;
++pub const LINUX_REBOOT_CMD_RESTART: u32 = 19088743;
++pub const LINUX_REBOOT_CMD_HALT: u32 = 3454992675;
++pub const LINUX_REBOOT_CMD_CAD_ON: u32 = 2309737967;
++pub const LINUX_REBOOT_CMD_CAD_OFF: u32 = 0;
++pub const LINUX_REBOOT_CMD_POWER_OFF: u32 = 1126301404;
++pub const LINUX_REBOOT_CMD_RESTART2: u32 = 2712847316;
++pub const LINUX_REBOOT_CMD_SW_SUSPEND: u32 = 3489725666;
++pub const LINUX_REBOOT_CMD_KEXEC: u32 = 1163412803;
++pub const ITIMER_REAL: u32 = 0;
++pub const ITIMER_VIRTUAL: u32 = 1;
++pub const ITIMER_PROF: u32 = 2;
++pub const CLOCK_REALTIME: u32 = 0;
++pub const CLOCK_MONOTONIC: u32 = 1;
++pub const CLOCK_PROCESS_CPUTIME_ID: u32 = 2;
++pub const CLOCK_THREAD_CPUTIME_ID: u32 = 3;
++pub const CLOCK_MONOTONIC_RAW: u32 = 4;
++pub const CLOCK_REALTIME_COARSE: u32 = 5;
++pub const CLOCK_MONOTONIC_COARSE: u32 = 6;
++pub const CLOCK_BOOTTIME: u32 = 7;
++pub const CLOCK_REALTIME_ALARM: u32 = 8;
++pub const CLOCK_BOOTTIME_ALARM: u32 = 9;
++pub const CLOCK_SGI_CYCLE: u32 = 10;
++pub const CLOCK_TAI: u32 = 11;
++pub const MAX_CLOCKS: u32 = 16;
++pub const CLOCKS_MASK: u32 = 1;
++pub const CLOCKS_MONO: u32 = 1;
++pub const TIMER_ABSTIME: u32 = 1;
++pub const RUSAGE_SELF: u32 = 0;
++pub const RUSAGE_CHILDREN: i32 = -1;
++pub const RUSAGE_BOTH: i32 = -2;
++pub const RUSAGE_THREAD: u32 = 1;
++pub const RLIM64_INFINITY: i32 = -1;
++pub const PRIO_MIN: i32 = -20;
++pub const PRIO_MAX: u32 = 20;
++pub const PRIO_PROCESS: u32 = 0;
++pub const PRIO_PGRP: u32 = 1;
++pub const PRIO_USER: u32 = 2;
++pub const _STK_LIM: u32 = 8388608;
++pub const MLOCK_LIMIT: u32 = 8388608;
++pub const RLIMIT_NOFILE: u32 = 5;
++pub const RLIMIT_AS: u32 = 6;
++pub const RLIMIT_RSS: u32 = 7;
++pub const RLIMIT_NPROC: u32 = 8;
++pub const RLIMIT_MEMLOCK: u32 = 9;
++pub const RLIMIT_CPU: u32 = 0;
++pub const RLIMIT_FSIZE: u32 = 1;
++pub const RLIMIT_DATA: u32 = 2;
++pub const RLIMIT_STACK: u32 = 3;
++pub const RLIMIT_CORE: u32 = 4;
++pub const RLIMIT_LOCKS: u32 = 10;
++pub const RLIMIT_SIGPENDING: u32 = 11;
++pub const RLIMIT_MSGQUEUE: u32 = 12;
++pub const RLIMIT_NICE: u32 = 13;
++pub const RLIMIT_RTPRIO: u32 = 14;
++pub const RLIMIT_RTTIME: u32 = 15;
++pub const RLIM_NLIMITS: u32 = 16;
++pub const RLIM_INFINITY: i32 = -1;
++pub const CSIGNAL: u32 = 255;
++pub const CLONE_VM: u32 = 256;
++pub const CLONE_FS: u32 = 512;
++pub const CLONE_FILES: u32 = 1024;
++pub const CLONE_SIGHAND: u32 = 2048;
++pub const CLONE_PIDFD: u32 = 4096;
++pub const CLONE_PTRACE: u32 = 8192;
++pub const CLONE_VFORK: u32 = 16384;
++pub const CLONE_PARENT: u32 = 32768;
++pub const CLONE_THREAD: u32 = 65536;
++pub const CLONE_NEWNS: u32 = 131072;
++pub const CLONE_SYSVSEM: u32 = 262144;
++pub const CLONE_SETTLS: u32 = 524288;
++pub const CLONE_PARENT_SETTID: u32 = 1048576;
++pub const CLONE_CHILD_CLEARTID: u32 = 2097152;
++pub const CLONE_DETACHED: u32 = 4194304;
++pub const CLONE_UNTRACED: u32 = 8388608;
++pub const CLONE_CHILD_SETTID: u32 = 16777216;
++pub const CLONE_NEWCGROUP: u32 = 33554432;
++pub const CLONE_NEWUTS: u32 = 67108864;
++pub const CLONE_NEWIPC: u32 = 134217728;
++pub const CLONE_NEWUSER: u32 = 268435456;
++pub const CLONE_NEWPID: u32 = 536870912;
++pub const CLONE_NEWNET: u32 = 1073741824;
++pub const CLONE_IO: u32 = 2147483648;
++pub const CLONE_CLEAR_SIGHAND: u64 = 4294967296;
++pub const CLONE_INTO_CGROUP: u64 = 8589934592;
++pub const CLONE_NEWTIME: u32 = 128;
++pub const CLONE_ARGS_SIZE_VER0: u32 = 64;
++pub const CLONE_ARGS_SIZE_VER1: u32 = 80;
++pub const CLONE_ARGS_SIZE_VER2: u32 = 88;
++pub const SCHED_NORMAL: u32 = 0;
++pub const SCHED_FIFO: u32 = 1;
++pub const SCHED_RR: u32 = 2;
++pub const SCHED_BATCH: u32 = 3;
++pub const SCHED_IDLE: u32 = 5;
++pub const SCHED_DEADLINE: u32 = 6;
++pub const SCHED_RESET_ON_FORK: u32 = 1073741824;
++pub const SCHED_FLAG_RESET_ON_FORK: u32 = 1;
++pub const SCHED_FLAG_RECLAIM: u32 = 2;
++pub const SCHED_FLAG_DL_OVERRUN: u32 = 4;
++pub const SCHED_FLAG_KEEP_POLICY: u32 = 8;
++pub const SCHED_FLAG_KEEP_PARAMS: u32 = 16;
++pub const SCHED_FLAG_UTIL_CLAMP_MIN: u32 = 32;
++pub const SCHED_FLAG_UTIL_CLAMP_MAX: u32 = 64;
++pub const SCHED_FLAG_KEEP_ALL: u32 = 24;
++pub const SCHED_FLAG_UTIL_CLAMP: u32 = 96;
++pub const SCHED_FLAG_ALL: u32 = 127;
++pub const _NSIG: u32 = 128;
++pub const SIGHUP: u32 = 1;
++pub const SIGINT: u32 = 2;
++pub const SIGQUIT: u32 = 3;
++pub const SIGILL: u32 = 4;
++pub const SIGTRAP: u32 = 5;
++pub const SIGIOT: u32 = 6;
++pub const SIGABRT: u32 = 6;
++pub const SIGEMT: u32 = 7;
++pub const SIGFPE: u32 = 8;
++pub const SIGKILL: u32 = 9;
++pub const SIGBUS: u32 = 10;
++pub const SIGSEGV: u32 = 11;
++pub const SIGSYS: u32 = 12;
++pub const SIGPIPE: u32 = 13;
++pub const SIGALRM: u32 = 14;
++pub const SIGTERM: u32 = 15;
++pub const SIGUSR1: u32 = 16;
++pub const SIGUSR2: u32 = 17;
++pub const SIGCHLD: u32 = 18;
++pub const SIGCLD: u32 = 18;
++pub const SIGPWR: u32 = 19;
++pub const SIGWINCH: u32 = 20;
++pub const SIGURG: u32 = 21;
++pub const SIGIO: u32 = 22;
++pub const SIGPOLL: u32 = 22;
++pub const SIGSTOP: u32 = 23;
++pub const SIGTSTP: u32 = 24;
++pub const SIGCONT: u32 = 25;
++pub const SIGTTIN: u32 = 26;
++pub const SIGTTOU: u32 = 27;
++pub const SIGVTALRM: u32 = 28;
++pub const SIGPROF: u32 = 29;
++pub const SIGXCPU: u32 = 30;
++pub const SIGXFSZ: u32 = 31;
++pub const SIGRTMIN: u32 = 32;
++pub const SIGRTMAX: u32 = 128;
++pub const SA_ONSTACK: u32 = 134217728;
++pub const SA_RESETHAND: u32 = 2147483648;
++pub const SA_RESTART: u32 = 268435456;
++pub const SA_SIGINFO: u32 = 8;
++pub const SA_NODEFER: u32 = 1073741824;
++pub const SA_NOCLDWAIT: u32 = 65536;
++pub const SA_NOCLDSTOP: u32 = 1;
++pub const SA_NOMASK: u32 = 1073741824;
++pub const SA_ONESHOT: u32 = 2147483648;
++pub const MINSIGSTKSZ: u32 = 2048;
++pub const SIGSTKSZ: u32 = 8192;
++pub const SIG_BLOCK: u32 = 1;
++pub const SIG_UNBLOCK: u32 = 2;
++pub const SIG_SETMASK: u32 = 3;
++pub const SA_UNSUPPORTED: u32 = 1024;
++pub const SA_EXPOSE_TAGBITS: u32 = 2048;
++pub const SI_MAX_SIZE: u32 = 128;
++pub const SI_USER: u32 = 0;
++pub const SI_KERNEL: u32 = 128;
++pub const SI_QUEUE: i32 = -1;
++pub const SI_TIMER: i32 = -2;
++pub const SI_MESGQ: i32 = -3;
++pub const SI_ASYNCIO: i32 = -4;
++pub const SI_SIGIO: i32 = -5;
++pub const SI_TKILL: i32 = -6;
++pub const SI_DETHREAD: i32 = -7;
++pub const SI_ASYNCNL: i32 = -60;
++pub const ILL_ILLOPC: u32 = 1;
++pub const ILL_ILLOPN: u32 = 2;
++pub const ILL_ILLADR: u32 = 3;
++pub const ILL_ILLTRP: u32 = 4;
++pub const ILL_PRVOPC: u32 = 5;
++pub const ILL_PRVREG: u32 = 6;
++pub const ILL_COPROC: u32 = 7;
++pub const ILL_BADSTK: u32 = 8;
++pub const ILL_BADIADDR: u32 = 9;
++pub const __ILL_BREAK: u32 = 10;
++pub const __ILL_BNDMOD: u32 = 11;
++pub const NSIGILL: u32 = 11;
++pub const FPE_INTDIV: u32 = 1;
++pub const FPE_INTOVF: u32 = 2;
++pub const FPE_FLTDIV: u32 = 3;
++pub const FPE_FLTOVF: u32 = 4;
++pub const FPE_FLTUND: u32 = 5;
++pub const FPE_FLTRES: u32 = 6;
++pub const FPE_FLTINV: u32 = 7;
++pub const FPE_FLTSUB: u32 = 8;
++pub const __FPE_DECOVF: u32 = 9;
++pub const __FPE_DECDIV: u32 = 10;
++pub const __FPE_DECERR: u32 = 11;
++pub const __FPE_INVASC: u32 = 12;
++pub const __FPE_INVDEC: u32 = 13;
++pub const FPE_FLTUNK: u32 = 14;
++pub const FPE_CONDTRAP: u32 = 15;
++pub const NSIGFPE: u32 = 15;
++pub const SEGV_MAPERR: u32 = 1;
++pub const SEGV_ACCERR: u32 = 2;
++pub const SEGV_BNDERR: u32 = 3;
++pub const SEGV_PKUERR: u32 = 4;
++pub const SEGV_ACCADI: u32 = 5;
++pub const SEGV_ADIDERR: u32 = 6;
++pub const SEGV_ADIPERR: u32 = 7;
++pub const SEGV_MTEAERR: u32 = 8;
++pub const SEGV_MTESERR: u32 = 9;
++pub const NSIGSEGV: u32 = 9;
++pub const BUS_ADRALN: u32 = 1;
++pub const BUS_ADRERR: u32 = 2;
++pub const BUS_OBJERR: u32 = 3;
++pub const BUS_MCEERR_AR: u32 = 4;
++pub const BUS_MCEERR_AO: u32 = 5;
++pub const NSIGBUS: u32 = 5;
++pub const TRAP_BRKPT: u32 = 1;
++pub const TRAP_TRACE: u32 = 2;
++pub const TRAP_BRANCH: u32 = 3;
++pub const TRAP_HWBKPT: u32 = 4;
++pub const TRAP_UNK: u32 = 5;
++pub const TRAP_PERF: u32 = 6;
++pub const NSIGTRAP: u32 = 6;
++pub const TRAP_PERF_FLAG_ASYNC: u32 = 1;
++pub const CLD_EXITED: u32 = 1;
++pub const CLD_KILLED: u32 = 2;
++pub const CLD_DUMPED: u32 = 3;
++pub const CLD_TRAPPED: u32 = 4;
++pub const CLD_STOPPED: u32 = 5;
++pub const CLD_CONTINUED: u32 = 6;
++pub const NSIGCHLD: u32 = 6;
++pub const POLL_IN: u32 = 1;
++pub const POLL_OUT: u32 = 2;
++pub const POLL_MSG: u32 = 3;
++pub const POLL_ERR: u32 = 4;
++pub const POLL_PRI: u32 = 5;
++pub const POLL_HUP: u32 = 6;
++pub const NSIGPOLL: u32 = 6;
++pub const SYS_SECCOMP: u32 = 1;
++pub const SYS_USER_DISPATCH: u32 = 2;
++pub const NSIGSYS: u32 = 2;
++pub const EMT_TAGOVF: u32 = 1;
++pub const NSIGEMT: u32 = 1;
++pub const SIGEV_SIGNAL: u32 = 0;
++pub const SIGEV_NONE: u32 = 1;
++pub const SIGEV_THREAD: u32 = 2;
++pub const SIGEV_THREAD_ID: u32 = 4;
++pub const SIGEV_MAX_SIZE: u32 = 64;
++pub const SS_ONSTACK: u32 = 1;
++pub const SS_DISABLE: u32 = 2;
++pub const SS_AUTODISARM: u32 = 2147483648;
++pub const SS_FLAG_BITS: u32 = 2147483648;
++pub const S_IFMT: u32 = 61440;
++pub const S_IFSOCK: u32 = 49152;
++pub const S_IFLNK: u32 = 40960;
++pub const S_IFREG: u32 = 32768;
++pub const S_IFBLK: u32 = 24576;
++pub const S_IFDIR: u32 = 16384;
++pub const S_IFCHR: u32 = 8192;
++pub const S_IFIFO: u32 = 4096;
++pub const S_ISUID: u32 = 2048;
++pub const S_ISGID: u32 = 1024;
++pub const S_ISVTX: u32 = 512;
++pub const S_IRWXU: u32 = 448;
++pub const S_IRUSR: u32 = 256;
++pub const S_IWUSR: u32 = 128;
++pub const S_IXUSR: u32 = 64;
++pub const S_IRWXG: u32 = 56;
++pub const S_IRGRP: u32 = 32;
++pub const S_IWGRP: u32 = 16;
++pub const S_IXGRP: u32 = 8;
++pub const S_IRWXO: u32 = 7;
++pub const S_IROTH: u32 = 4;
++pub const S_IWOTH: u32 = 2;
++pub const S_IXOTH: u32 = 1;
++pub const STATX_TYPE: u32 = 1;
++pub const STATX_MODE: u32 = 2;
++pub const STATX_NLINK: u32 = 4;
++pub const STATX_UID: u32 = 8;
++pub const STATX_GID: u32 = 16;
++pub const STATX_ATIME: u32 = 32;
++pub const STATX_MTIME: u32 = 64;
++pub const STATX_CTIME: u32 = 128;
++pub const STATX_INO: u32 = 256;
++pub const STATX_SIZE: u32 = 512;
++pub const STATX_BLOCKS: u32 = 1024;
++pub const STATX_BASIC_STATS: u32 = 2047;
++pub const STATX_BTIME: u32 = 2048;
++pub const STATX_MNT_ID: u32 = 4096;
++pub const STATX_DIOALIGN: u32 = 8192;
++pub const STATX__RESERVED: u32 = 2147483648;
++pub const STATX_ALL: u32 = 4095;
++pub const STATX_ATTR_COMPRESSED: u32 = 4;
++pub const STATX_ATTR_IMMUTABLE: u32 = 16;
++pub const STATX_ATTR_APPEND: u32 = 32;
++pub const STATX_ATTR_NODUMP: u32 = 64;
++pub const STATX_ATTR_ENCRYPTED: u32 = 2048;
++pub const STATX_ATTR_AUTOMOUNT: u32 = 4096;
++pub const STATX_ATTR_MOUNT_ROOT: u32 = 8192;
++pub const STATX_ATTR_VERITY: u32 = 1048576;
++pub const STATX_ATTR_DAX: u32 = 2097152;
++pub const EPERM: u32 = 1;
++pub const ENOENT: u32 = 2;
++pub const ESRCH: u32 = 3;
++pub const EINTR: u32 = 4;
++pub const EIO: u32 = 5;
++pub const ENXIO: u32 = 6;
++pub const E2BIG: u32 = 7;
++pub const ENOEXEC: u32 = 8;
++pub const EBADF: u32 = 9;
++pub const ECHILD: u32 = 10;
++pub const EAGAIN: u32 = 11;
++pub const ENOMEM: u32 = 12;
++pub const EACCES: u32 = 13;
++pub const EFAULT: u32 = 14;
++pub const ENOTBLK: u32 = 15;
++pub const EBUSY: u32 = 16;
++pub const EEXIST: u32 = 17;
++pub const EXDEV: u32 = 18;
++pub const ENODEV: u32 = 19;
++pub const ENOTDIR: u32 = 20;
++pub const EISDIR: u32 = 21;
++pub const EINVAL: u32 = 22;
++pub const ENFILE: u32 = 23;
++pub const EMFILE: u32 = 24;
++pub const ENOTTY: u32 = 25;
++pub const ETXTBSY: u32 = 26;
++pub const EFBIG: u32 = 27;
++pub const ENOSPC: u32 = 28;
++pub const ESPIPE: u32 = 29;
++pub const EROFS: u32 = 30;
++pub const EMLINK: u32 = 31;
++pub const EPIPE: u32 = 32;
++pub const EDOM: u32 = 33;
++pub const ERANGE: u32 = 34;
++pub const ENOMSG: u32 = 35;
++pub const EIDRM: u32 = 36;
++pub const ECHRNG: u32 = 37;
++pub const EL2NSYNC: u32 = 38;
++pub const EL3HLT: u32 = 39;
++pub const EL3RST: u32 = 40;
++pub const ELNRNG: u32 = 41;
++pub const EUNATCH: u32 = 42;
++pub const ENOCSI: u32 = 43;
++pub const EL2HLT: u32 = 44;
++pub const EDEADLK: u32 = 45;
++pub const ENOLCK: u32 = 46;
++pub const EBADE: u32 = 50;
++pub const EBADR: u32 = 51;
++pub const EXFULL: u32 = 52;
++pub const ENOANO: u32 = 53;
++pub const EBADRQC: u32 = 54;
++pub const EBADSLT: u32 = 55;
++pub const EDEADLOCK: u32 = 56;
++pub const EBFONT: u32 = 59;
++pub const ENOSTR: u32 = 60;
++pub const ENODATA: u32 = 61;
++pub const ETIME: u32 = 62;
++pub const ENOSR: u32 = 63;
++pub const ENONET: u32 = 64;
++pub const ENOPKG: u32 = 65;
++pub const EREMOTE: u32 = 66;
++pub const ENOLINK: u32 = 67;
++pub const EADV: u32 = 68;
++pub const ESRMNT: u32 = 69;
++pub const ECOMM: u32 = 70;
++pub const EPROTO: u32 = 71;
++pub const EDOTDOT: u32 = 73;
++pub const EMULTIHOP: u32 = 74;
++pub const EBADMSG: u32 = 77;
++pub const ENAMETOOLONG: u32 = 78;
++pub const EOVERFLOW: u32 = 79;
++pub const ENOTUNIQ: u32 = 80;
++pub const EBADFD: u32 = 81;
++pub const EREMCHG: u32 = 82;
++pub const ELIBACC: u32 = 83;
++pub const ELIBBAD: u32 = 84;
++pub const ELIBSCN: u32 = 85;
++pub const ELIBMAX: u32 = 86;
++pub const ELIBEXEC: u32 = 87;
++pub const EILSEQ: u32 = 88;
++pub const ENOSYS: u32 = 89;
++pub const ELOOP: u32 = 90;
++pub const ERESTART: u32 = 91;
++pub const ESTRPIPE: u32 = 92;
++pub const ENOTEMPTY: u32 = 93;
++pub const EUSERS: u32 = 94;
++pub const ENOTSOCK: u32 = 95;
++pub const EDESTADDRREQ: u32 = 96;
++pub const EMSGSIZE: u32 = 97;
++pub const EPROTOTYPE: u32 = 98;
++pub const ENOPROTOOPT: u32 = 99;
++pub const EPROTONOSUPPORT: u32 = 120;
++pub const ESOCKTNOSUPPORT: u32 = 121;
++pub const EOPNOTSUPP: u32 = 122;
++pub const EPFNOSUPPORT: u32 = 123;
++pub const EAFNOSUPPORT: u32 = 124;
++pub const EADDRINUSE: u32 = 125;
++pub const EADDRNOTAVAIL: u32 = 126;
++pub const ENETDOWN: u32 = 127;
++pub const ENETUNREACH: u32 = 128;
++pub const ENETRESET: u32 = 129;
++pub const ECONNABORTED: u32 = 130;
++pub const ECONNRESET: u32 = 131;
++pub const ENOBUFS: u32 = 132;
++pub const EISCONN: u32 = 133;
++pub const ENOTCONN: u32 = 134;
++pub const EUCLEAN: u32 = 135;
++pub const ENOTNAM: u32 = 137;
++pub const ENAVAIL: u32 = 138;
++pub const EISNAM: u32 = 139;
++pub const EREMOTEIO: u32 = 140;
++pub const EINIT: u32 = 141;
++pub const EREMDEV: u32 = 142;
++pub const ESHUTDOWN: u32 = 143;
++pub const ETOOMANYREFS: u32 = 144;
++pub const ETIMEDOUT: u32 = 145;
++pub const ECONNREFUSED: u32 = 146;
++pub const EHOSTDOWN: u32 = 147;
++pub const EHOSTUNREACH: u32 = 148;
++pub const EWOULDBLOCK: u32 = 11;
++pub const EALREADY: u32 = 149;
++pub const EINPROGRESS: u32 = 150;
++pub const ESTALE: u32 = 151;
++pub const ECANCELED: u32 = 158;
++pub const ENOMEDIUM: u32 = 159;
++pub const EMEDIUMTYPE: u32 = 160;
++pub const ENOKEY: u32 = 161;
++pub const EKEYEXPIRED: u32 = 162;
++pub const EKEYREVOKED: u32 = 163;
++pub const EKEYREJECTED: u32 = 164;
++pub const EOWNERDEAD: u32 = 165;
++pub const ENOTRECOVERABLE: u32 = 166;
++pub const ERFKILL: u32 = 167;
++pub const EHWPOISON: u32 = 168;
++pub const EDQUOT: u32 = 1133;
++pub const IGNBRK: u32 = 1;
++pub const BRKINT: u32 = 2;
++pub const IGNPAR: u32 = 4;
++pub const PARMRK: u32 = 8;
++pub const INPCK: u32 = 16;
++pub const ISTRIP: u32 = 32;
++pub const INLCR: u32 = 64;
++pub const IGNCR: u32 = 128;
++pub const ICRNL: u32 = 256;
++pub const IXANY: u32 = 2048;
++pub const OPOST: u32 = 1;
++pub const OCRNL: u32 = 8;
++pub const ONOCR: u32 = 16;
++pub const ONLRET: u32 = 32;
++pub const OFILL: u32 = 64;
++pub const OFDEL: u32 = 128;
++pub const B0: u32 = 0;
++pub const B50: u32 = 1;
++pub const B75: u32 = 2;
++pub const B110: u32 = 3;
++pub const B134: u32 = 4;
++pub const B150: u32 = 5;
++pub const B200: u32 = 6;
++pub const B300: u32 = 7;
++pub const B600: u32 = 8;
++pub const B1200: u32 = 9;
++pub const B1800: u32 = 10;
++pub const B2400: u32 = 11;
++pub const B4800: u32 = 12;
++pub const B9600: u32 = 13;
++pub const B19200: u32 = 14;
++pub const B38400: u32 = 15;
++pub const EXTA: u32 = 14;
++pub const EXTB: u32 = 15;
++pub const ADDRB: u32 = 536870912;
++pub const CMSPAR: u32 = 1073741824;
++pub const CRTSCTS: u32 = 2147483648;
++pub const IBSHIFT: u32 = 16;
++pub const TCOOFF: u32 = 0;
++pub const TCOON: u32 = 1;
++pub const TCIOFF: u32 = 2;
++pub const TCION: u32 = 3;
++pub const TCIFLUSH: u32 = 0;
++pub const TCOFLUSH: u32 = 1;
++pub const TCIOFLUSH: u32 = 2;
++pub const NCCS: u32 = 23;
++pub const VINTR: u32 = 0;
++pub const VQUIT: u32 = 1;
++pub const VERASE: u32 = 2;
++pub const VKILL: u32 = 3;
++pub const VMIN: u32 = 4;
++pub const VTIME: u32 = 5;
++pub const VEOL2: u32 = 6;
++pub const VSWTC: u32 = 7;
++pub const VSWTCH: u32 = 7;
++pub const VSTART: u32 = 8;
++pub const VSTOP: u32 = 9;
++pub const VSUSP: u32 = 10;
++pub const VREPRINT: u32 = 12;
++pub const VDISCARD: u32 = 13;
++pub const VWERASE: u32 = 14;
++pub const VLNEXT: u32 = 15;
++pub const VEOF: u32 = 16;
++pub const VEOL: u32 = 17;
++pub const IUCLC: u32 = 512;
++pub const IXON: u32 = 1024;
++pub const IXOFF: u32 = 4096;
++pub const IMAXBEL: u32 = 8192;
++pub const IUTF8: u32 = 16384;
++pub const OLCUC: u32 = 2;
++pub const ONLCR: u32 = 4;
++pub const NLDLY: u32 = 256;
++pub const NL0: u32 = 0;
++pub const NL1: u32 = 256;
++pub const CRDLY: u32 = 1536;
++pub const CR0: u32 = 0;
++pub const CR1: u32 = 512;
++pub const CR2: u32 = 1024;
++pub const CR3: u32 = 1536;
++pub const TABDLY: u32 = 6144;
++pub const TAB0: u32 = 0;
++pub const TAB1: u32 = 2048;
++pub const TAB2: u32 = 4096;
++pub const TAB3: u32 = 6144;
++pub const XTABS: u32 = 6144;
++pub const BSDLY: u32 = 8192;
++pub const BS0: u32 = 0;
++pub const BS1: u32 = 8192;
++pub const VTDLY: u32 = 16384;
++pub const VT0: u32 = 0;
++pub const VT1: u32 = 16384;
++pub const FFDLY: u32 = 32768;
++pub const FF0: u32 = 0;
++pub const FF1: u32 = 32768;
++pub const CBAUD: u32 = 4111;
++pub const CSIZE: u32 = 48;
++pub const CS5: u32 = 0;
++pub const CS6: u32 = 16;
++pub const CS7: u32 = 32;
++pub const CS8: u32 = 48;
++pub const CSTOPB: u32 = 64;
++pub const CREAD: u32 = 128;
++pub const PARENB: u32 = 256;
++pub const PARODD: u32 = 512;
++pub const HUPCL: u32 = 1024;
++pub const CLOCAL: u32 = 2048;
++pub const CBAUDEX: u32 = 4096;
++pub const BOTHER: u32 = 4096;
++pub const B57600: u32 = 4097;
++pub const B115200: u32 = 4098;
++pub const B230400: u32 = 4099;
++pub const B460800: u32 = 4100;
++pub const B500000: u32 = 4101;
++pub const B576000: u32 = 4102;
++pub const B921600: u32 = 4103;
++pub const B1000000: u32 = 4104;
++pub const B1152000: u32 = 4105;
++pub const B1500000: u32 = 4106;
++pub const B2000000: u32 = 4107;
++pub const B2500000: u32 = 4108;
++pub const B3000000: u32 = 4109;
++pub const B3500000: u32 = 4110;
++pub const B4000000: u32 = 4111;
++pub const CIBAUD: u32 = 269418496;
++pub const ISIG: u32 = 1;
++pub const ICANON: u32 = 2;
++pub const XCASE: u32 = 4;
++pub const ECHO: u32 = 8;
++pub const ECHOE: u32 = 16;
++pub const ECHOK: u32 = 32;
++pub const ECHONL: u32 = 64;
++pub const NOFLSH: u32 = 128;
++pub const IEXTEN: u32 = 256;
++pub const ECHOCTL: u32 = 512;
++pub const ECHOPRT: u32 = 1024;
++pub const ECHOKE: u32 = 2048;
++pub const FLUSHO: u32 = 8192;
++pub const PENDIN: u32 = 16384;
++pub const TOSTOP: u32 = 32768;
++pub const ITOSTOP: u32 = 32768;
++pub const EXTPROC: u32 = 65536;
++pub const TIOCSER_TEMT: u32 = 1;
++pub const TIOCPKT_DATA: u32 = 0;
++pub const TIOCPKT_FLUSHREAD: u32 = 1;
++pub const TIOCPKT_FLUSHWRITE: u32 = 2;
++pub const TIOCPKT_STOP: u32 = 4;
++pub const TIOCPKT_START: u32 = 8;
++pub const TIOCPKT_NOSTOP: u32 = 16;
++pub const TIOCPKT_DOSTOP: u32 = 32;
++pub const TIOCPKT_IOCTL: u32 = 64;
++pub const TIOCGLTC: u32 = 29812;
++pub const TIOCSLTC: u32 = 29813;
++pub const TIOCGETP: u32 = 29704;
++pub const TIOCSETP: u32 = 29705;
++pub const TIOCSETN: u32 = 29706;
++pub const NCC: u32 = 8;
++pub const TIOCM_LE: u32 = 1;
++pub const TIOCM_DTR: u32 = 2;
++pub const TIOCM_RTS: u32 = 4;
++pub const TIOCM_ST: u32 = 16;
++pub const TIOCM_SR: u32 = 32;
++pub const TIOCM_CTS: u32 = 64;
++pub const TIOCM_CAR: u32 = 256;
++pub const TIOCM_CD: u32 = 256;
++pub const TIOCM_RNG: u32 = 512;
++pub const TIOCM_RI: u32 = 512;
++pub const TIOCM_DSR: u32 = 1024;
++pub const TIOCM_OUT1: u32 = 8192;
++pub const TIOCM_OUT2: u32 = 16384;
++pub const TIOCM_LOOP: u32 = 32768;
++pub const UIO_FASTIOV: u32 = 8;
++pub const UIO_MAXIOV: u32 = 1024;
++pub const __NR_Linux: u32 = 5000;
++pub const __NR_read: u32 = 5000;
++pub const __NR_write: u32 = 5001;
++pub const __NR_open: u32 = 5002;
++pub const __NR_close: u32 = 5003;
++pub const __NR_stat: u32 = 5004;
++pub const __NR_fstat: u32 = 5005;
++pub const __NR_lstat: u32 = 5006;
++pub const __NR_poll: u32 = 5007;
++pub const __NR_lseek: u32 = 5008;
++pub const __NR_mmap: u32 = 5009;
++pub const __NR_mprotect: u32 = 5010;
++pub const __NR_munmap: u32 = 5011;
++pub const __NR_brk: u32 = 5012;
++pub const __NR_rt_sigaction: u32 = 5013;
++pub const __NR_rt_sigprocmask: u32 = 5014;
++pub const __NR_ioctl: u32 = 5015;
++pub const __NR_pread64: u32 = 5016;
++pub const __NR_pwrite64: u32 = 5017;
++pub const __NR_readv: u32 = 5018;
++pub const __NR_writev: u32 = 5019;
++pub const __NR_access: u32 = 5020;
++pub const __NR_pipe: u32 = 5021;
++pub const __NR__newselect: u32 = 5022;
++pub const __NR_sched_yield: u32 = 5023;
++pub const __NR_mremap: u32 = 5024;
++pub const __NR_msync: u32 = 5025;
++pub const __NR_mincore: u32 = 5026;
++pub const __NR_madvise: u32 = 5027;
++pub const __NR_shmget: u32 = 5028;
++pub const __NR_shmat: u32 = 5029;
++pub const __NR_shmctl: u32 = 5030;
++pub const __NR_dup: u32 = 5031;
++pub const __NR_dup2: u32 = 5032;
++pub const __NR_pause: u32 = 5033;
++pub const __NR_nanosleep: u32 = 5034;
++pub const __NR_getitimer: u32 = 5035;
++pub const __NR_setitimer: u32 = 5036;
++pub const __NR_alarm: u32 = 5037;
++pub const __NR_getpid: u32 = 5038;
++pub const __NR_sendfile: u32 = 5039;
++pub const __NR_socket: u32 = 5040;
++pub const __NR_connect: u32 = 5041;
++pub const __NR_accept: u32 = 5042;
++pub const __NR_sendto: u32 = 5043;
++pub const __NR_recvfrom: u32 = 5044;
++pub const __NR_sendmsg: u32 = 5045;
++pub const __NR_recvmsg: u32 = 5046;
++pub const __NR_shutdown: u32 = 5047;
++pub const __NR_bind: u32 = 5048;
++pub const __NR_listen: u32 = 5049;
++pub const __NR_getsockname: u32 = 5050;
++pub const __NR_getpeername: u32 = 5051;
++pub const __NR_socketpair: u32 = 5052;
++pub const __NR_setsockopt: u32 = 5053;
++pub const __NR_getsockopt: u32 = 5054;
++pub const __NR_clone: u32 = 5055;
++pub const __NR_fork: u32 = 5056;
++pub const __NR_execve: u32 = 5057;
++pub const __NR_exit: u32 = 5058;
++pub const __NR_wait4: u32 = 5059;
++pub const __NR_kill: u32 = 5060;
++pub const __NR_uname: u32 = 5061;
++pub const __NR_semget: u32 = 5062;
++pub const __NR_semop: u32 = 5063;
++pub const __NR_semctl: u32 = 5064;
++pub const __NR_shmdt: u32 = 5065;
++pub const __NR_msgget: u32 = 5066;
++pub const __NR_msgsnd: u32 = 5067;
++pub const __NR_msgrcv: u32 = 5068;
++pub const __NR_msgctl: u32 = 5069;
++pub const __NR_fcntl: u32 = 5070;
++pub const __NR_flock: u32 = 5071;
++pub const __NR_fsync: u32 = 5072;
++pub const __NR_fdatasync: u32 = 5073;
++pub const __NR_truncate: u32 = 5074;
++pub const __NR_ftruncate: u32 = 5075;
++pub const __NR_getdents: u32 = 5076;
++pub const __NR_getcwd: u32 = 5077;
++pub const __NR_chdir: u32 = 5078;
++pub const __NR_fchdir: u32 = 5079;
++pub const __NR_rename: u32 = 5080;
++pub const __NR_mkdir: u32 = 5081;
++pub const __NR_rmdir: u32 = 5082;
++pub const __NR_creat: u32 = 5083;
++pub const __NR_link: u32 = 5084;
++pub const __NR_unlink: u32 = 5085;
++pub const __NR_symlink: u32 = 5086;
++pub const __NR_readlink: u32 = 5087;
++pub const __NR_chmod: u32 = 5088;
++pub const __NR_fchmod: u32 = 5089;
++pub const __NR_chown: u32 = 5090;
++pub const __NR_fchown: u32 = 5091;
++pub const __NR_lchown: u32 = 5092;
++pub const __NR_umask: u32 = 5093;
++pub const __NR_gettimeofday: u32 = 5094;
++pub const __NR_getrlimit: u32 = 5095;
++pub const __NR_getrusage: u32 = 5096;
++pub const __NR_sysinfo: u32 = 5097;
++pub const __NR_times: u32 = 5098;
++pub const __NR_ptrace: u32 = 5099;
++pub const __NR_getuid: u32 = 5100;
++pub const __NR_syslog: u32 = 5101;
++pub const __NR_getgid: u32 = 5102;
++pub const __NR_setuid: u32 = 5103;
++pub const __NR_setgid: u32 = 5104;
++pub const __NR_geteuid: u32 = 5105;
++pub const __NR_getegid: u32 = 5106;
++pub const __NR_setpgid: u32 = 5107;
++pub const __NR_getppid: u32 = 5108;
++pub const __NR_getpgrp: u32 = 5109;
++pub const __NR_setsid: u32 = 5110;
++pub const __NR_setreuid: u32 = 5111;
++pub const __NR_setregid: u32 = 5112;
++pub const __NR_getgroups: u32 = 5113;
++pub const __NR_setgroups: u32 = 5114;
++pub const __NR_setresuid: u32 = 5115;
++pub const __NR_getresuid: u32 = 5116;
++pub const __NR_setresgid: u32 = 5117;
++pub const __NR_getresgid: u32 = 5118;
++pub const __NR_getpgid: u32 = 5119;
++pub const __NR_setfsuid: u32 = 5120;
++pub const __NR_setfsgid: u32 = 5121;
++pub const __NR_getsid: u32 = 5122;
++pub const __NR_capget: u32 = 5123;
++pub const __NR_capset: u32 = 5124;
++pub const __NR_rt_sigpending: u32 = 5125;
++pub const __NR_rt_sigtimedwait: u32 = 5126;
++pub const __NR_rt_sigqueueinfo: u32 = 5127;
++pub const __NR_rt_sigsuspend: u32 = 5128;
++pub const __NR_sigaltstack: u32 = 5129;
++pub const __NR_utime: u32 = 5130;
++pub const __NR_mknod: u32 = 5131;
++pub const __NR_personality: u32 = 5132;
++pub const __NR_ustat: u32 = 5133;
++pub const __NR_statfs: u32 = 5134;
++pub const __NR_fstatfs: u32 = 5135;
++pub const __NR_sysfs: u32 = 5136;
++pub const __NR_getpriority: u32 = 5137;
++pub const __NR_setpriority: u32 = 5138;
++pub const __NR_sched_setparam: u32 = 5139;
++pub const __NR_sched_getparam: u32 = 5140;
++pub const __NR_sched_setscheduler: u32 = 5141;
++pub const __NR_sched_getscheduler: u32 = 5142;
++pub const __NR_sched_get_priority_max: u32 = 5143;
++pub const __NR_sched_get_priority_min: u32 = 5144;
++pub const __NR_sched_rr_get_interval: u32 = 5145;
++pub const __NR_mlock: u32 = 5146;
++pub const __NR_munlock: u32 = 5147;
++pub const __NR_mlockall: u32 = 5148;
++pub const __NR_munlockall: u32 = 5149;
++pub const __NR_vhangup: u32 = 5150;
++pub const __NR_pivot_root: u32 = 5151;
++pub const __NR__sysctl: u32 = 5152;
++pub const __NR_prctl: u32 = 5153;
++pub const __NR_adjtimex: u32 = 5154;
++pub const __NR_setrlimit: u32 = 5155;
++pub const __NR_chroot: u32 = 5156;
++pub const __NR_sync: u32 = 5157;
++pub const __NR_acct: u32 = 5158;
++pub const __NR_settimeofday: u32 = 5159;
++pub const __NR_mount: u32 = 5160;
++pub const __NR_umount2: u32 = 5161;
++pub const __NR_swapon: u32 = 5162;
++pub const __NR_swapoff: u32 = 5163;
++pub const __NR_reboot: u32 = 5164;
++pub const __NR_sethostname: u32 = 5165;
++pub const __NR_setdomainname: u32 = 5166;
++pub const __NR_create_module: u32 = 5167;
++pub const __NR_init_module: u32 = 5168;
++pub const __NR_delete_module: u32 = 5169;
++pub const __NR_get_kernel_syms: u32 = 5170;
++pub const __NR_query_module: u32 = 5171;
++pub const __NR_quotactl: u32 = 5172;
++pub const __NR_nfsservctl: u32 = 5173;
++pub const __NR_getpmsg: u32 = 5174;
++pub const __NR_putpmsg: u32 = 5175;
++pub const __NR_afs_syscall: u32 = 5176;
++pub const __NR_reserved177: u32 = 5177;
++pub const __NR_gettid: u32 = 5178;
++pub const __NR_readahead: u32 = 5179;
++pub const __NR_setxattr: u32 = 5180;
++pub const __NR_lsetxattr: u32 = 5181;
++pub const __NR_fsetxattr: u32 = 5182;
++pub const __NR_getxattr: u32 = 5183;
++pub const __NR_lgetxattr: u32 = 5184;
++pub const __NR_fgetxattr: u32 = 5185;
++pub const __NR_listxattr: u32 = 5186;
++pub const __NR_llistxattr: u32 = 5187;
++pub const __NR_flistxattr: u32 = 5188;
++pub const __NR_removexattr: u32 = 5189;
++pub const __NR_lremovexattr: u32 = 5190;
++pub const __NR_fremovexattr: u32 = 5191;
++pub const __NR_tkill: u32 = 5192;
++pub const __NR_reserved193: u32 = 5193;
++pub const __NR_futex: u32 = 5194;
++pub const __NR_sched_setaffinity: u32 = 5195;
++pub const __NR_sched_getaffinity: u32 = 5196;
++pub const __NR_cacheflush: u32 = 5197;
++pub const __NR_cachectl: u32 = 5198;
++pub const __NR_sysmips: u32 = 5199;
++pub const __NR_io_setup: u32 = 5200;
++pub const __NR_io_destroy: u32 = 5201;
++pub const __NR_io_getevents: u32 = 5202;
++pub const __NR_io_submit: u32 = 5203;
++pub const __NR_io_cancel: u32 = 5204;
++pub const __NR_exit_group: u32 = 5205;
++pub const __NR_lookup_dcookie: u32 = 5206;
++pub const __NR_epoll_create: u32 = 5207;
++pub const __NR_epoll_ctl: u32 = 5208;
++pub const __NR_epoll_wait: u32 = 5209;
++pub const __NR_remap_file_pages: u32 = 5210;
++pub const __NR_rt_sigreturn: u32 = 5211;
++pub const __NR_set_tid_address: u32 = 5212;
++pub const __NR_restart_syscall: u32 = 5213;
++pub const __NR_semtimedop: u32 = 5214;
++pub const __NR_fadvise64: u32 = 5215;
++pub const __NR_timer_create: u32 = 5216;
++pub const __NR_timer_settime: u32 = 5217;
++pub const __NR_timer_gettime: u32 = 5218;
++pub const __NR_timer_getoverrun: u32 = 5219;
++pub const __NR_timer_delete: u32 = 5220;
++pub const __NR_clock_settime: u32 = 5221;
++pub const __NR_clock_gettime: u32 = 5222;
++pub const __NR_clock_getres: u32 = 5223;
++pub const __NR_clock_nanosleep: u32 = 5224;
++pub const __NR_tgkill: u32 = 5225;
++pub const __NR_utimes: u32 = 5226;
++pub const __NR_mbind: u32 = 5227;
++pub const __NR_get_mempolicy: u32 = 5228;
++pub const __NR_set_mempolicy: u32 = 5229;
++pub const __NR_mq_open: u32 = 5230;
++pub const __NR_mq_unlink: u32 = 5231;
++pub const __NR_mq_timedsend: u32 = 5232;
++pub const __NR_mq_timedreceive: u32 = 5233;
++pub const __NR_mq_notify: u32 = 5234;
++pub const __NR_mq_getsetattr: u32 = 5235;
++pub const __NR_vserver: u32 = 5236;
++pub const __NR_waitid: u32 = 5237;
++pub const __NR_add_key: u32 = 5239;
++pub const __NR_request_key: u32 = 5240;
++pub const __NR_keyctl: u32 = 5241;
++pub const __NR_set_thread_area: u32 = 5242;
++pub const __NR_inotify_init: u32 = 5243;
++pub const __NR_inotify_add_watch: u32 = 5244;
++pub const __NR_inotify_rm_watch: u32 = 5245;
++pub const __NR_migrate_pages: u32 = 5246;
++pub const __NR_openat: u32 = 5247;
++pub const __NR_mkdirat: u32 = 5248;
++pub const __NR_mknodat: u32 = 5249;
++pub const __NR_fchownat: u32 = 5250;
++pub const __NR_futimesat: u32 = 5251;
++pub const __NR_newfstatat: u32 = 5252;
++pub const __NR_unlinkat: u32 = 5253;
++pub const __NR_renameat: u32 = 5254;
++pub const __NR_linkat: u32 = 5255;
++pub const __NR_symlinkat: u32 = 5256;
++pub const __NR_readlinkat: u32 = 5257;
++pub const __NR_fchmodat: u32 = 5258;
++pub const __NR_faccessat: u32 = 5259;
++pub const __NR_pselect6: u32 = 5260;
++pub const __NR_ppoll: u32 = 5261;
++pub const __NR_unshare: u32 = 5262;
++pub const __NR_splice: u32 = 5263;
++pub const __NR_sync_file_range: u32 = 5264;
++pub const __NR_tee: u32 = 5265;
++pub const __NR_vmsplice: u32 = 5266;
++pub const __NR_move_pages: u32 = 5267;
++pub const __NR_set_robust_list: u32 = 5268;
++pub const __NR_get_robust_list: u32 = 5269;
++pub const __NR_kexec_load: u32 = 5270;
++pub const __NR_getcpu: u32 = 5271;
++pub const __NR_epoll_pwait: u32 = 5272;
++pub const __NR_ioprio_set: u32 = 5273;
++pub const __NR_ioprio_get: u32 = 5274;
++pub const __NR_utimensat: u32 = 5275;
++pub const __NR_signalfd: u32 = 5276;
++pub const __NR_timerfd: u32 = 5277;
++pub const __NR_eventfd: u32 = 5278;
++pub const __NR_fallocate: u32 = 5279;
++pub const __NR_timerfd_create: u32 = 5280;
++pub const __NR_timerfd_gettime: u32 = 5281;
++pub const __NR_timerfd_settime: u32 = 5282;
++pub const __NR_signalfd4: u32 = 5283;
++pub const __NR_eventfd2: u32 = 5284;
++pub const __NR_epoll_create1: u32 = 5285;
++pub const __NR_dup3: u32 = 5286;
++pub const __NR_pipe2: u32 = 5287;
++pub const __NR_inotify_init1: u32 = 5288;
++pub const __NR_preadv: u32 = 5289;
++pub const __NR_pwritev: u32 = 5290;
++pub const __NR_rt_tgsigqueueinfo: u32 = 5291;
++pub const __NR_perf_event_open: u32 = 5292;
++pub const __NR_accept4: u32 = 5293;
++pub const __NR_recvmmsg: u32 = 5294;
++pub const __NR_fanotify_init: u32 = 5295;
++pub const __NR_fanotify_mark: u32 = 5296;
++pub const __NR_prlimit64: u32 = 5297;
++pub const __NR_name_to_handle_at: u32 = 5298;
++pub const __NR_open_by_handle_at: u32 = 5299;
++pub const __NR_clock_adjtime: u32 = 5300;
++pub const __NR_syncfs: u32 = 5301;
++pub const __NR_sendmmsg: u32 = 5302;
++pub const __NR_setns: u32 = 5303;
++pub const __NR_process_vm_readv: u32 = 5304;
++pub const __NR_process_vm_writev: u32 = 5305;
++pub const __NR_kcmp: u32 = 5306;
++pub const __NR_finit_module: u32 = 5307;
++pub const __NR_getdents64: u32 = 5308;
++pub const __NR_sched_setattr: u32 = 5309;
++pub const __NR_sched_getattr: u32 = 5310;
++pub const __NR_renameat2: u32 = 5311;
++pub const __NR_seccomp: u32 = 5312;
++pub const __NR_getrandom: u32 = 5313;
++pub const __NR_memfd_create: u32 = 5314;
++pub const __NR_bpf: u32 = 5315;
++pub const __NR_execveat: u32 = 5316;
++pub const __NR_userfaultfd: u32 = 5317;
++pub const __NR_membarrier: u32 = 5318;
++pub const __NR_mlock2: u32 = 5319;
++pub const __NR_copy_file_range: u32 = 5320;
++pub const __NR_preadv2: u32 = 5321;
++pub const __NR_pwritev2: u32 = 5322;
++pub const __NR_pkey_mprotect: u32 = 5323;
++pub const __NR_pkey_alloc: u32 = 5324;
++pub const __NR_pkey_free: u32 = 5325;
++pub const __NR_statx: u32 = 5326;
++pub const __NR_rseq: u32 = 5327;
++pub const __NR_io_pgetevents: u32 = 5328;
++pub const __NR_pidfd_send_signal: u32 = 5424;
++pub const __NR_io_uring_setup: u32 = 5425;
++pub const __NR_io_uring_enter: u32 = 5426;
++pub const __NR_io_uring_register: u32 = 5427;
++pub const __NR_open_tree: u32 = 5428;
++pub const __NR_move_mount: u32 = 5429;
++pub const __NR_fsopen: u32 = 5430;
++pub const __NR_fsconfig: u32 = 5431;
++pub const __NR_fsmount: u32 = 5432;
++pub const __NR_fspick: u32 = 5433;
++pub const __NR_pidfd_open: u32 = 5434;
++pub const __NR_clone3: u32 = 5435;
++pub const __NR_close_range: u32 = 5436;
++pub const __NR_openat2: u32 = 5437;
++pub const __NR_pidfd_getfd: u32 = 5438;
++pub const __NR_faccessat2: u32 = 5439;
++pub const __NR_process_madvise: u32 = 5440;
++pub const __NR_epoll_pwait2: u32 = 5441;
++pub const __NR_mount_setattr: u32 = 5442;
++pub const __NR_quotactl_fd: u32 = 5443;
++pub const __NR_landlock_create_ruleset: u32 = 5444;
++pub const __NR_landlock_add_rule: u32 = 5445;
++pub const __NR_landlock_restrict_self: u32 = 5446;
++pub const __NR_process_mrelease: u32 = 5448;
++pub const __NR_futex_waitv: u32 = 5449;
++pub const __NR_set_mempolicy_home_node: u32 = 5450;
++pub const WNOHANG: u32 = 1;
++pub const WUNTRACED: u32 = 2;
++pub const WSTOPPED: u32 = 2;
++pub const WEXITED: u32 = 4;
++pub const WCONTINUED: u32 = 8;
++pub const WNOWAIT: u32 = 16777216;
++pub const __WNOTHREAD: u32 = 536870912;
++pub const __WALL: u32 = 1073741824;
++pub const __WCLONE: u32 = 2147483648;
++pub const P_ALL: u32 = 0;
++pub const P_PID: u32 = 1;
++pub const P_PGID: u32 = 2;
++pub const P_PIDFD: u32 = 3;
++pub const XATTR_CREATE: u32 = 1;
++pub const XATTR_REPLACE: u32 = 2;
++pub const XATTR_OS2_PREFIX: &[u8; 5] = b"os2.\0";
++pub const XATTR_MAC_OSX_PREFIX: &[u8; 5] = b"osx.\0";
++pub const XATTR_BTRFS_PREFIX: &[u8; 7] = b"btrfs.\0";
++pub const XATTR_HURD_PREFIX: &[u8; 5] = b"gnu.\0";
++pub const XATTR_SECURITY_PREFIX: &[u8; 10] = b"security.\0";
++pub const XATTR_SYSTEM_PREFIX: &[u8; 8] = b"system.\0";
++pub const XATTR_TRUSTED_PREFIX: &[u8; 9] = b"trusted.\0";
++pub const XATTR_USER_PREFIX: &[u8; 6] = b"user.\0";
++pub const XATTR_EVM_SUFFIX: &[u8; 4] = b"evm\0";
++pub const XATTR_NAME_EVM: &[u8; 13] = b"security.evm\0";
++pub const XATTR_IMA_SUFFIX: &[u8; 4] = b"ima\0";
++pub const XATTR_NAME_IMA: &[u8; 13] = b"security.ima\0";
++pub const XATTR_SELINUX_SUFFIX: &[u8; 8] = b"selinux\0";
++pub const XATTR_NAME_SELINUX: &[u8; 17] = b"security.selinux\0";
++pub const XATTR_SMACK_SUFFIX: &[u8; 8] = b"SMACK64\0";
++pub const XATTR_SMACK_IPIN: &[u8; 12] = b"SMACK64IPIN\0";
++pub const XATTR_SMACK_IPOUT: &[u8; 13] = b"SMACK64IPOUT\0";
++pub const XATTR_SMACK_EXEC: &[u8; 12] = b"SMACK64EXEC\0";
++pub const XATTR_SMACK_TRANSMUTE: &[u8; 17] = b"SMACK64TRANSMUTE\0";
++pub const XATTR_SMACK_MMAP: &[u8; 12] = b"SMACK64MMAP\0";
++pub const XATTR_NAME_SMACK: &[u8; 17] = b"security.SMACK64\0";
++pub const XATTR_NAME_SMACKIPIN: &[u8; 21] = b"security.SMACK64IPIN\0";
++pub const XATTR_NAME_SMACKIPOUT: &[u8; 22] = b"security.SMACK64IPOUT\0";
++pub const XATTR_NAME_SMACKEXEC: &[u8; 21] = b"security.SMACK64EXEC\0";
++pub const XATTR_NAME_SMACKTRANSMUTE: &[u8; 26] = b"security.SMACK64TRANSMUTE\0";
++pub const XATTR_NAME_SMACKMMAP: &[u8; 21] = b"security.SMACK64MMAP\0";
++pub const XATTR_APPARMOR_SUFFIX: &[u8; 9] = b"apparmor\0";
++pub const XATTR_NAME_APPARMOR: &[u8; 18] = b"security.apparmor\0";
++pub const XATTR_CAPS_SUFFIX: &[u8; 11] = b"capability\0";
++pub const XATTR_NAME_CAPS: &[u8; 20] = b"security.capability\0";
++pub const XATTR_POSIX_ACL_ACCESS: &[u8; 17] = b"posix_acl_access\0";
++pub const XATTR_NAME_POSIX_ACL_ACCESS: &[u8; 24] = b"system.posix_acl_access\0";
++pub const XATTR_POSIX_ACL_DEFAULT: &[u8; 18] = b"posix_acl_default\0";
++pub const XATTR_NAME_POSIX_ACL_DEFAULT: &[u8; 25] = b"system.posix_acl_default\0";
++pub const MFD_CLOEXEC: u32 = 1;
++pub const MFD_ALLOW_SEALING: u32 = 2;
++pub const MFD_HUGETLB: u32 = 4;
++pub const MFD_NOEXEC_SEAL: u32 = 8;
++pub const MFD_EXEC: u32 = 16;
++pub const MFD_HUGE_SHIFT: u32 = 26;
++pub const MFD_HUGE_MASK: u32 = 63;
++pub const MFD_HUGE_64KB: u32 = 1073741824;
++pub const MFD_HUGE_512KB: u32 = 1275068416;
++pub const MFD_HUGE_1MB: u32 = 1342177280;
++pub const MFD_HUGE_2MB: u32 = 1409286144;
++pub const MFD_HUGE_8MB: u32 = 1543503872;
++pub const MFD_HUGE_16MB: u32 = 1610612736;
++pub const MFD_HUGE_32MB: u32 = 1677721600;
++pub const MFD_HUGE_256MB: u32 = 1879048192;
++pub const MFD_HUGE_512MB: u32 = 1946157056;
++pub const MFD_HUGE_1GB: u32 = 2013265920;
++pub const MFD_HUGE_2GB: u32 = 2080374784;
++pub const MFD_HUGE_16GB: u32 = 2281701376;
++pub const TFD_TIMER_ABSTIME: u32 = 1;
++pub const TFD_TIMER_CANCEL_ON_SET: u32 = 2;
++pub const TFD_CLOEXEC: u32 = 524288;
++pub const TFD_NONBLOCK: u32 = 128;
++pub const USERFAULTFD_IOC: u32 = 170;
++pub const _UFFDIO_REGISTER: u32 = 0;
++pub const _UFFDIO_UNREGISTER: u32 = 1;
++pub const _UFFDIO_WAKE: u32 = 2;
++pub const _UFFDIO_COPY: u32 = 3;
++pub const _UFFDIO_ZEROPAGE: u32 = 4;
++pub const _UFFDIO_WRITEPROTECT: u32 = 6;
++pub const _UFFDIO_CONTINUE: u32 = 7;
++pub const _UFFDIO_API: u32 = 63;
++pub const UFFDIO: u32 = 170;
++pub const UFFD_EVENT_PAGEFAULT: u32 = 18;
++pub const UFFD_EVENT_FORK: u32 = 19;
++pub const UFFD_EVENT_REMAP: u32 = 20;
++pub const UFFD_EVENT_REMOVE: u32 = 21;
++pub const UFFD_EVENT_UNMAP: u32 = 22;
++pub const UFFD_PAGEFAULT_FLAG_WRITE: u32 = 1;
++pub const UFFD_PAGEFAULT_FLAG_WP: u32 = 2;
++pub const UFFD_PAGEFAULT_FLAG_MINOR: u32 = 4;
++pub const UFFD_FEATURE_PAGEFAULT_FLAG_WP: u32 = 1;
++pub const UFFD_FEATURE_EVENT_FORK: u32 = 2;
++pub const UFFD_FEATURE_EVENT_REMAP: u32 = 4;
++pub const UFFD_FEATURE_EVENT_REMOVE: u32 = 8;
++pub const UFFD_FEATURE_MISSING_HUGETLBFS: u32 = 16;
++pub const UFFD_FEATURE_MISSING_SHMEM: u32 = 32;
++pub const UFFD_FEATURE_EVENT_UNMAP: u32 = 64;
++pub const UFFD_FEATURE_SIGBUS: u32 = 128;
++pub const UFFD_FEATURE_THREAD_ID: u32 = 256;
++pub const UFFD_FEATURE_MINOR_HUGETLBFS: u32 = 512;
++pub const UFFD_FEATURE_MINOR_SHMEM: u32 = 1024;
++pub const UFFD_FEATURE_EXACT_ADDRESS: u32 = 2048;
++pub const UFFD_FEATURE_WP_HUGETLBFS_SHMEM: u32 = 4096;
++pub const UFFD_USER_MODE_ONLY: u32 = 1;
++pub const DT_UNKNOWN: u32 = 0;
++pub const DT_FIFO: u32 = 1;
++pub const DT_CHR: u32 = 2;
++pub const DT_DIR: u32 = 4;
++pub const DT_BLK: u32 = 6;
++pub const DT_REG: u32 = 8;
++pub const DT_LNK: u32 = 10;
++pub const DT_SOCK: u32 = 12;
++pub const STAT_HAVE_NSEC: u32 = 1;
++pub const F_OK: u32 = 0;
++pub const R_OK: u32 = 4;
++pub const W_OK: u32 = 2;
++pub const X_OK: u32 = 1;
++pub const UTIME_NOW: u32 = 1073741823;
++pub const UTIME_OMIT: u32 = 1073741822;
++pub const MNT_FORCE: u32 = 1;
++pub const MNT_DETACH: u32 = 2;
++pub const MNT_EXPIRE: u32 = 4;
++pub const UMOUNT_NOFOLLOW: u32 = 8;
++pub const UMOUNT_UNUSED: u32 = 2147483648;
++pub const STDIN_FILENO: u32 = 0;
++pub const STDOUT_FILENO: u32 = 1;
++pub const STDERR_FILENO: u32 = 2;
++pub const RWF_HIPRI: u32 = 1;
++pub const RWF_DSYNC: u32 = 2;
++pub const RWF_SYNC: u32 = 4;
++pub const RWF_NOWAIT: u32 = 8;
++pub const RWF_APPEND: u32 = 16;
++pub const EFD_SEMAPHORE: u32 = 1;
++pub const EFD_CLOEXEC: u32 = 524288;
++pub const EFD_NONBLOCK: u32 = 128;
++pub const EPOLLIN: u32 = 1;
++pub const EPOLLPRI: u32 = 2;
++pub const EPOLLOUT: u32 = 4;
++pub const EPOLLERR: u32 = 8;
++pub const EPOLLHUP: u32 = 16;
++pub const EPOLLNVAL: u32 = 32;
++pub const EPOLLRDNORM: u32 = 64;
++pub const EPOLLRDBAND: u32 = 128;
++pub const EPOLLWRNORM: u32 = 256;
++pub const EPOLLWRBAND: u32 = 512;
++pub const EPOLLMSG: u32 = 1024;
++pub const EPOLLRDHUP: u32 = 8192;
++pub const EPOLLEXCLUSIVE: u32 = 268435456;
++pub const EPOLLWAKEUP: u32 = 536870912;
++pub const EPOLLONESHOT: u32 = 1073741824;
++pub const EPOLLET: u32 = 2147483648;
++pub const TFD_SHARED_FCNTL_FLAGS: u32 = 524416;
++pub const TFD_CREATE_FLAGS: u32 = 524416;
++pub const TFD_SETTIME_FLAGS: u32 = 1;
++pub const UFFD_API: u32 = 170;
++pub const UFFDIO_REGISTER_MODE_MISSING: u32 = 1;
++pub const UFFDIO_REGISTER_MODE_WP: u32 = 2;
++pub const UFFDIO_REGISTER_MODE_MINOR: u32 = 4;
++pub const UFFDIO_COPY_MODE_DONTWAKE: u32 = 1;
++pub const UFFDIO_COPY_MODE_WP: u32 = 2;
++pub const UFFDIO_ZEROPAGE_MODE_DONTWAKE: u32 = 1;
++pub const POLLWRNORM: u32 = 4;
++pub const TCSANOW: u32 = 21518;
++pub const TCSADRAIN: u32 = 21519;
++pub const TCSAFLUSH: u32 = 21520;
++pub const SPLICE_F_MOVE: u32 = 1;
++pub const SPLICE_F_NONBLOCK: u32 = 2;
++pub const SPLICE_F_MORE: u32 = 4;
++pub const SPLICE_F_GIFT: u32 = 8;
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum fsconfig_command {
++FSCONFIG_SET_FLAG = 0,
++FSCONFIG_SET_STRING = 1,
++FSCONFIG_SET_BINARY = 2,
++FSCONFIG_SET_PATH = 3,
++FSCONFIG_SET_PATH_EMPTY = 4,
++FSCONFIG_SET_FD = 5,
++FSCONFIG_CMD_CREATE = 6,
++FSCONFIG_CMD_RECONFIGURE = 7,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum membarrier_cmd {
++MEMBARRIER_CMD_QUERY = 0,
++MEMBARRIER_CMD_GLOBAL = 1,
++MEMBARRIER_CMD_GLOBAL_EXPEDITED = 2,
++MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED = 4,
++MEMBARRIER_CMD_PRIVATE_EXPEDITED = 8,
++MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED = 16,
++MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE = 32,
++MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE = 64,
++MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ = 128,
++MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ = 256,
++MEMBARRIER_CMD_GET_REGISTRATIONS = 512,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum membarrier_cmd_flag {
++MEMBARRIER_CMD_FLAG_CPU = 1,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub union fscrypt_get_policy_ex_arg__bindgen_ty_1 {
++pub version: __u8,
++pub v1: fscrypt_policy_v1,
++pub v2: fscrypt_policy_v2,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub union fscrypt_key_specifier__bindgen_ty_1 {
++pub __reserved: [__u8; 32usize],
++pub descriptor: [__u8; 8usize],
++pub identifier: [__u8; 16usize],
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub union sigval {
++pub sival_int: crate::ctypes::c_int,
++pub sival_ptr: *mut crate::ctypes::c_void,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub union __sifields {
++pub _kill: __sifields__bindgen_ty_1,
++pub _timer: __sifields__bindgen_ty_2,
++pub _rt: __sifields__bindgen_ty_3,
++pub _sigchld: __sifields__bindgen_ty_4,
++pub _sigfault: __sifields__bindgen_ty_5,
++pub _sigpoll: __sifields__bindgen_ty_6,
++pub _sigsys: __sifields__bindgen_ty_7,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub union __sifields__bindgen_ty_5__bindgen_ty_1 {
++pub _trapno: crate::ctypes::c_int,
++pub _addr_lsb: crate::ctypes::c_short,
++pub _addr_bnd: __sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_1,
++pub _addr_pkey: __sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_2,
++pub _perf: __sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_3,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub union siginfo__bindgen_ty_1 {
++pub __bindgen_anon_1: siginfo__bindgen_ty_1__bindgen_ty_1,
++pub _si_pad: [crate::ctypes::c_int; 32usize],
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub union sigevent__bindgen_ty_1 {
++pub _pad: [crate::ctypes::c_int; 12usize],
++pub _tid: crate::ctypes::c_int,
++pub _sigev_thread: sigevent__bindgen_ty_1__bindgen_ty_1,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub union uffd_msg__bindgen_ty_1 {
++pub pagefault: uffd_msg__bindgen_ty_1__bindgen_ty_1,
++pub fork: uffd_msg__bindgen_ty_1__bindgen_ty_2,
++pub remap: uffd_msg__bindgen_ty_1__bindgen_ty_3,
++pub remove: uffd_msg__bindgen_ty_1__bindgen_ty_4,
++pub reserved: uffd_msg__bindgen_ty_1__bindgen_ty_5,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub union uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
++pub ptid: __u32,
++}
++impl<Storage> __BindgenBitfieldUnit<Storage> {
++#[inline]
++pub const fn new(storage: Storage) -> Self {
++Self { storage }
++}
++}
++impl<Storage> __BindgenBitfieldUnit<Storage>
++where
++Storage: AsRef<[u8]> + AsMut<[u8]>,
++{
++#[inline]
++pub fn get_bit(&self, index: usize) -> bool {
++debug_assert!(index / 8 < self.storage.as_ref().len());
++let byte_index = index / 8;
++let byte = self.storage.as_ref()[byte_index];
++let bit_index = if cfg!(target_endian = "big") { 7 - (index % 8) } else { index % 8 };
++let mask = 1 << bit_index;
++byte & mask == mask
++}
++#[inline]
++pub fn set_bit(&mut self, index: usize, val: bool) {
++debug_assert!(index / 8 < self.storage.as_ref().len());
++let byte_index = index / 8;
++let byte = &mut self.storage.as_mut()[byte_index];
++let bit_index = if cfg!(target_endian = "big") { 7 - (index % 8) } else { index % 8 };
++let mask = 1 << bit_index;
++if val {
++*byte |= mask;
++} else {
++*byte &= !mask;
++}
++}
++#[inline]
++pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 {
++debug_assert!(bit_width <= 64);
++debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
++debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
++let mut val = 0;
++for i in 0..(bit_width as usize) {
++if self.get_bit(i + bit_offset) {
++let index = if cfg!(target_endian = "big") { bit_width as usize - 1 - i } else { i };
++val |= 1 << index;
++}
++}
++val
++}
++#[inline]
++pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) {
++debug_assert!(bit_width <= 64);
++debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
++debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
++for i in 0..(bit_width as usize) {
++let mask = 1 << i;
++let val_bit_is_set = val & mask == mask;
++let index = if cfg!(target_endian = "big") { bit_width as usize - 1 - i } else { i };
++self.set_bit(index + bit_offset, val_bit_is_set);
++}
++}
++}
++impl<T> __IncompleteArrayField<T> {
++#[inline]
++pub const fn new() -> Self {
++__IncompleteArrayField(::core::marker::PhantomData, [])
++}
++#[inline]
++pub fn as_ptr(&self) -> *const T {
++self as *const _ as *const T
++}
++#[inline]
++pub fn as_mut_ptr(&mut self) -> *mut T {
++self as *mut _ as *mut T
++}
++#[inline]
++pub unsafe fn as_slice(&self, len: usize) -> &[T] {
++::core::slice::from_raw_parts(self.as_ptr(), len)
++}
++#[inline]
++pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
++::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
++}
++}
++impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
++fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
++fmt.write_str("__IncompleteArrayField")
++}
++}
++impl membarrier_cmd {
++pub const MEMBARRIER_CMD_SHARED: membarrier_cmd = membarrier_cmd::MEMBARRIER_CMD_GLOBAL;
++}
++impl user_desc {
++#[inline]
++pub fn seg_32bit(&self) -> crate::ctypes::c_uint {
++unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
++}
++#[inline]
++pub fn set_seg_32bit(&mut self, val: crate::ctypes::c_uint) {
++unsafe {
++let val: u32 = ::core::mem::transmute(val);
++self._bitfield_1.set(0usize, 1u8, val as u64)
++}
++}
++#[inline]
++pub fn contents(&self) -> crate::ctypes::c_uint {
++unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 2u8) as u32) }
++}
++#[inline]
++pub fn set_contents(&mut self, val: crate::ctypes::c_uint) {
++unsafe {
++let val: u32 = ::core::mem::transmute(val);
++self._bitfield_1.set(1usize, 2u8, val as u64)
++}
++}
++#[inline]
++pub fn read_exec_only(&self) -> crate::ctypes::c_uint {
++unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
++}
++#[inline]
++pub fn set_read_exec_only(&mut self, val: crate::ctypes::c_uint) {
++unsafe {
++let val: u32 = ::core::mem::transmute(val);
++self._bitfield_1.set(3usize, 1u8, val as u64)
++}
++}
++#[inline]
++pub fn limit_in_pages(&self) -> crate::ctypes::c_uint {
++unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
++}
++#[inline]
++pub fn set_limit_in_pages(&mut self, val: crate::ctypes::c_uint) {
++unsafe {
++let val: u32 = ::core::mem::transmute(val);
++self._bitfield_1.set(4usize, 1u8, val as u64)
++}
++}
++#[inline]
++pub fn seg_not_present(&self) -> crate::ctypes::c_uint {
++unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) }
++}
++#[inline]
++pub fn set_seg_not_present(&mut self, val: crate::ctypes::c_uint) {
++unsafe {
++let val: u32 = ::core::mem::transmute(val);
++self._bitfield_1.set(5usize, 1u8, val as u64)
++}
++}
++#[inline]
++pub fn useable(&self) -> crate::ctypes::c_uint {
++unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) }
++}
++#[inline]
++pub fn set_useable(&mut self, val: crate::ctypes::c_uint) {
++unsafe {
++let val: u32 = ::core::mem::transmute(val);
++self._bitfield_1.set(6usize, 1u8, val as u64)
++}
++}
++#[inline]
++pub fn new_bitfield_1(seg_32bit: crate::ctypes::c_uint, contents: crate::ctypes::c_uint, read_exec_only: crate::ctypes::c_uint, limit_in_pages: crate::ctypes::c_uint, seg_not_present: crate::ctypes::c_uint, useable: crate::ctypes::c_uint) -> __BindgenBitfieldUnit<[u8; 1usize]> {
++let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
++__bindgen_bitfield_unit.set(0usize, 1u8, {
++let seg_32bit: u32 = unsafe { ::core::mem::transmute(seg_32bit) };
++seg_32bit as u64
++});
++__bindgen_bitfield_unit.set(1usize, 2u8, {
++let contents: u32 = unsafe { ::core::mem::transmute(contents) };
++contents as u64
++});
++__bindgen_bitfield_unit.set(3usize, 1u8, {
++let read_exec_only: u32 = unsafe { ::core::mem::transmute(read_exec_only) };
++read_exec_only as u64
++});
++__bindgen_bitfield_unit.set(4usize, 1u8, {
++let limit_in_pages: u32 = unsafe { ::core::mem::transmute(limit_in_pages) };
++limit_in_pages as u64
++});
++__bindgen_bitfield_unit.set(5usize, 1u8, {
++let seg_not_present: u32 = unsafe { ::core::mem::transmute(seg_not_present) };
++seg_not_present as u64
++});
++__bindgen_bitfield_unit.set(6usize, 1u8, {
++let useable: u32 = unsafe { ::core::mem::transmute(useable) };
++useable as u64
++});
++__bindgen_bitfield_unit
++}
++}
+diff --git a/vendor/linux-raw-sys-0.4.14/src/sw_64/if_arp.rs b/vendor/linux-raw-sys-0.4.14/src/sw_64/if_arp.rs
+new file mode 100644
+index 00000000000..6641a51a7b4
+--- /dev/null
++++ b/vendor/linux-raw-sys-0.4.14/src/sw_64/if_arp.rs
+@@ -0,0 +1,2675 @@
++/* automatically generated by rust-bindgen 0.66.1 */
++
++pub type __s8 = crate::ctypes::c_schar;
++pub type __u8 = crate::ctypes::c_uchar;
++pub type __s16 = crate::ctypes::c_short;
++pub type __u16 = crate::ctypes::c_ushort;
++pub type __s32 = crate::ctypes::c_int;
++pub type __u32 = crate::ctypes::c_uint;
++pub type __s64 = crate::ctypes::c_long;
++pub type __u64 = crate::ctypes::c_ulong;
++pub type __kernel_key_t = crate::ctypes::c_int;
++pub type __kernel_mqd_t = crate::ctypes::c_int;
++pub type __kernel_daddr_t = crate::ctypes::c_long;
++pub type __kernel_long_t = crate::ctypes::c_long;
++pub type __kernel_ulong_t = crate::ctypes::c_ulong;
++pub type __kernel_ino_t = __kernel_ulong_t;
++pub type __kernel_mode_t = crate::ctypes::c_uint;
++pub type __kernel_pid_t = crate::ctypes::c_int;
++pub type __kernel_ipc_pid_t = crate::ctypes::c_int;
++pub type __kernel_uid_t = crate::ctypes::c_uint;
++pub type __kernel_gid_t = crate::ctypes::c_uint;
++pub type __kernel_suseconds_t = __kernel_long_t;
++pub type __kernel_uid32_t = crate::ctypes::c_uint;
++pub type __kernel_gid32_t = crate::ctypes::c_uint;
++pub type __kernel_old_uid_t = __kernel_uid_t;
++pub type __kernel_old_gid_t = __kernel_gid_t;
++pub type __kernel_old_dev_t = crate::ctypes::c_uint;
++pub type __kernel_size_t = __kernel_ulong_t;
++pub type __kernel_ssize_t = __kernel_long_t;
++pub type __kernel_ptrdiff_t = __kernel_long_t;
++pub type __kernel_off_t = __kernel_long_t;
++pub type __kernel_loff_t = crate::ctypes::c_longlong;
++pub type __kernel_old_time_t = __kernel_long_t;
++pub type __kernel_time_t = __kernel_long_t;
++pub type __kernel_time64_t = crate::ctypes::c_longlong;
++pub type __kernel_clock_t = __kernel_long_t;
++pub type __kernel_timer_t = crate::ctypes::c_int;
++pub type __kernel_clockid_t = crate::ctypes::c_int;
++pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
++pub type __kernel_uid16_t = crate::ctypes::c_ushort;
++pub type __kernel_gid16_t = crate::ctypes::c_ushort;
++pub type __le16 = __u16;
++pub type __be16 = __u16;
++pub type __le32 = __u32;
++pub type __be32 = __u32;
++pub type __le64 = __u64;
++pub type __be64 = __u64;
++pub type __sum16 = __u16;
++pub type __wsum = __u32;
++pub type __poll_t = crate::ctypes::c_uint;
++pub type __kernel_sa_family_t = crate::ctypes::c_ushort;
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub struct __kernel_sockaddr_storage {
++pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1 {
++pub ss_family: __kernel_sa_family_t,
++pub __data: [crate::ctypes::c_char; 126usize],
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub struct sockaddr {
++pub __storage: __kernel_sockaddr_storage,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct sync_serial_settings {
++pub clock_rate: crate::ctypes::c_uint,
++pub clock_type: crate::ctypes::c_uint,
++pub loopback: crate::ctypes::c_ushort,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct te1_settings {
++pub clock_rate: crate::ctypes::c_uint,
++pub clock_type: crate::ctypes::c_uint,
++pub loopback: crate::ctypes::c_ushort,
++pub slot_map: crate::ctypes::c_uint,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct raw_hdlc_proto {
++pub encoding: crate::ctypes::c_ushort,
++pub parity: crate::ctypes::c_ushort,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct fr_proto {
++pub t391: crate::ctypes::c_uint,
++pub t392: crate::ctypes::c_uint,
++pub n391: crate::ctypes::c_uint,
++pub n392: crate::ctypes::c_uint,
++pub n393: crate::ctypes::c_uint,
++pub lmi: crate::ctypes::c_ushort,
++pub dce: crate::ctypes::c_ushort,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct fr_proto_pvc {
++pub dlci: crate::ctypes::c_uint,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct fr_proto_pvc_info {
++pub dlci: crate::ctypes::c_uint,
++pub master: [crate::ctypes::c_char; 16usize],
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct cisco_proto {
++pub interval: crate::ctypes::c_uint,
++pub timeout: crate::ctypes::c_uint,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct x25_hdlc_proto {
++pub dce: crate::ctypes::c_ushort,
++pub modulo: crate::ctypes::c_uint,
++pub window: crate::ctypes::c_uint,
++pub t1: crate::ctypes::c_uint,
++pub t2: crate::ctypes::c_uint,
++pub n2: crate::ctypes::c_uint,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ifmap {
++pub mem_start: crate::ctypes::c_ulong,
++pub mem_end: crate::ctypes::c_ulong,
++pub base_addr: crate::ctypes::c_ushort,
++pub irq: crate::ctypes::c_uchar,
++pub dma: crate::ctypes::c_uchar,
++pub port: crate::ctypes::c_uchar,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub struct if_settings {
++pub type_: crate::ctypes::c_uint,
++pub size: crate::ctypes::c_uint,
++pub ifs_ifsu: if_settings__bindgen_ty_1,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub struct ifreq {
++pub ifr_ifrn: ifreq__bindgen_ty_1,
++pub ifr_ifru: ifreq__bindgen_ty_2,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub struct ifconf {
++pub ifc_len: crate::ctypes::c_int,
++pub ifc_ifcu: ifconf__bindgen_ty_1,
++}
++#[repr(C, packed)]
++#[derive(Debug, Copy, Clone)]
++pub struct ethhdr {
++pub h_dest: [crate::ctypes::c_uchar; 6usize],
++pub h_source: [crate::ctypes::c_uchar; 6usize],
++pub h_proto: __be16,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct sockaddr_pkt {
++pub spkt_family: crate::ctypes::c_ushort,
++pub spkt_device: [crate::ctypes::c_uchar; 14usize],
++pub spkt_protocol: __be16,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct sockaddr_ll {
++pub sll_family: crate::ctypes::c_ushort,
++pub sll_protocol: __be16,
++pub sll_ifindex: crate::ctypes::c_int,
++pub sll_hatype: crate::ctypes::c_ushort,
++pub sll_pkttype: crate::ctypes::c_uchar,
++pub sll_halen: crate::ctypes::c_uchar,
++pub sll_addr: [crate::ctypes::c_uchar; 8usize],
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct tpacket_stats {
++pub tp_packets: crate::ctypes::c_uint,
++pub tp_drops: crate::ctypes::c_uint,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct tpacket_stats_v3 {
++pub tp_packets: crate::ctypes::c_uint,
++pub tp_drops: crate::ctypes::c_uint,
++pub tp_freeze_q_cnt: crate::ctypes::c_uint,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct tpacket_rollover_stats {
++pub tp_all: __u64,
++pub tp_huge: __u64,
++pub tp_failed: __u64,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct tpacket_auxdata {
++pub tp_status: __u32,
++pub tp_len: __u32,
++pub tp_snaplen: __u32,
++pub tp_mac: __u16,
++pub tp_net: __u16,
++pub tp_vlan_tci: __u16,
++pub tp_vlan_tpid: __u16,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct tpacket_hdr {
++pub tp_status: crate::ctypes::c_ulong,
++pub tp_len: crate::ctypes::c_uint,
++pub tp_snaplen: crate::ctypes::c_uint,
++pub tp_mac: crate::ctypes::c_ushort,
++pub tp_net: crate::ctypes::c_ushort,
++pub tp_sec: crate::ctypes::c_uint,
++pub tp_usec: crate::ctypes::c_uint,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct tpacket2_hdr {
++pub tp_status: __u32,
++pub tp_len: __u32,
++pub tp_snaplen: __u32,
++pub tp_mac: __u16,
++pub tp_net: __u16,
++pub tp_sec: __u32,
++pub tp_nsec: __u32,
++pub tp_vlan_tci: __u16,
++pub tp_vlan_tpid: __u16,
++pub tp_padding: [__u8; 4usize],
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct tpacket_hdr_variant1 {
++pub tp_rxhash: __u32,
++pub tp_vlan_tci: __u32,
++pub tp_vlan_tpid: __u16,
++pub tp_padding: __u16,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub struct tpacket3_hdr {
++pub tp_next_offset: __u32,
++pub tp_sec: __u32,
++pub tp_nsec: __u32,
++pub tp_snaplen: __u32,
++pub tp_len: __u32,
++pub tp_status: __u32,
++pub tp_mac: __u16,
++pub tp_net: __u16,
++pub __bindgen_anon_1: tpacket3_hdr__bindgen_ty_1,
++pub tp_padding: [__u8; 8usize],
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub struct tpacket_bd_ts {
++pub ts_sec: crate::ctypes::c_uint,
++pub __bindgen_anon_1: tpacket_bd_ts__bindgen_ty_1,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub struct tpacket_hdr_v1 {
++pub block_status: __u32,
++pub num_pkts: __u32,
++pub offset_to_first_pkt: __u32,
++pub blk_len: __u32,
++pub seq_num: __u64,
++pub ts_first_pkt: tpacket_bd_ts,
++pub ts_last_pkt: tpacket_bd_ts,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub struct tpacket_block_desc {
++pub version: __u32,
++pub offset_to_priv: __u32,
++pub hdr: tpacket_bd_header_u,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct tpacket_req {
++pub tp_block_size: crate::ctypes::c_uint,
++pub tp_block_nr: crate::ctypes::c_uint,
++pub tp_frame_size: crate::ctypes::c_uint,
++pub tp_frame_nr: crate::ctypes::c_uint,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct tpacket_req3 {
++pub tp_block_size: crate::ctypes::c_uint,
++pub tp_block_nr: crate::ctypes::c_uint,
++pub tp_frame_size: crate::ctypes::c_uint,
++pub tp_frame_nr: crate::ctypes::c_uint,
++pub tp_retire_blk_tov: crate::ctypes::c_uint,
++pub tp_sizeof_priv: crate::ctypes::c_uint,
++pub tp_feature_req_word: crate::ctypes::c_uint,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct packet_mreq {
++pub mr_ifindex: crate::ctypes::c_int,
++pub mr_type: crate::ctypes::c_ushort,
++pub mr_alen: crate::ctypes::c_ushort,
++pub mr_address: [crate::ctypes::c_uchar; 8usize],
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct fanout_args {
++pub type_flags: __u16,
++pub id: __u16,
++pub max_num_members: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct sockaddr_nl {
++pub nl_family: __kernel_sa_family_t,
++pub nl_pad: crate::ctypes::c_ushort,
++pub nl_pid: __u32,
++pub nl_groups: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct nlmsghdr {
++pub nlmsg_len: __u32,
++pub nlmsg_type: __u16,
++pub nlmsg_flags: __u16,
++pub nlmsg_seq: __u32,
++pub nlmsg_pid: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct nlmsgerr {
++pub error: crate::ctypes::c_int,
++pub msg: nlmsghdr,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct nl_pktinfo {
++pub group: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct nl_mmap_req {
++pub nm_block_size: crate::ctypes::c_uint,
++pub nm_block_nr: crate::ctypes::c_uint,
++pub nm_frame_size: crate::ctypes::c_uint,
++pub nm_frame_nr: crate::ctypes::c_uint,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct nl_mmap_hdr {
++pub nm_status: crate::ctypes::c_uint,
++pub nm_len: crate::ctypes::c_uint,
++pub nm_group: __u32,
++pub nm_pid: __u32,
++pub nm_uid: __u32,
++pub nm_gid: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct nlattr {
++pub nla_len: __u16,
++pub nla_type: __u16,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct nla_bitfield32 {
++pub value: __u32,
++pub selector: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct rtnl_link_stats {
++pub rx_packets: __u32,
++pub tx_packets: __u32,
++pub rx_bytes: __u32,
++pub tx_bytes: __u32,
++pub rx_errors: __u32,
++pub tx_errors: __u32,
++pub rx_dropped: __u32,
++pub tx_dropped: __u32,
++pub multicast: __u32,
++pub collisions: __u32,
++pub rx_length_errors: __u32,
++pub rx_over_errors: __u32,
++pub rx_crc_errors: __u32,
++pub rx_frame_errors: __u32,
++pub rx_fifo_errors: __u32,
++pub rx_missed_errors: __u32,
++pub tx_aborted_errors: __u32,
++pub tx_carrier_errors: __u32,
++pub tx_fifo_errors: __u32,
++pub tx_heartbeat_errors: __u32,
++pub tx_window_errors: __u32,
++pub rx_compressed: __u32,
++pub tx_compressed: __u32,
++pub rx_nohandler: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct rtnl_link_stats64 {
++pub rx_packets: __u64,
++pub tx_packets: __u64,
++pub rx_bytes: __u64,
++pub tx_bytes: __u64,
++pub rx_errors: __u64,
++pub tx_errors: __u64,
++pub rx_dropped: __u64,
++pub tx_dropped: __u64,
++pub multicast: __u64,
++pub collisions: __u64,
++pub rx_length_errors: __u64,
++pub rx_over_errors: __u64,
++pub rx_crc_errors: __u64,
++pub rx_frame_errors: __u64,
++pub rx_fifo_errors: __u64,
++pub rx_missed_errors: __u64,
++pub tx_aborted_errors: __u64,
++pub tx_carrier_errors: __u64,
++pub tx_fifo_errors: __u64,
++pub tx_heartbeat_errors: __u64,
++pub tx_window_errors: __u64,
++pub rx_compressed: __u64,
++pub tx_compressed: __u64,
++pub rx_nohandler: __u64,
++pub rx_otherhost_dropped: __u64,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct rtnl_hw_stats64 {
++pub rx_packets: __u64,
++pub tx_packets: __u64,
++pub rx_bytes: __u64,
++pub tx_bytes: __u64,
++pub rx_errors: __u64,
++pub tx_errors: __u64,
++pub rx_dropped: __u64,
++pub tx_dropped: __u64,
++pub multicast: __u64,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct rtnl_link_ifmap {
++pub mem_start: __u64,
++pub mem_end: __u64,
++pub base_addr: __u64,
++pub irq: __u16,
++pub dma: __u8,
++pub port: __u8,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ifla_bridge_id {
++pub prio: [__u8; 2usize],
++pub addr: [__u8; 6usize],
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ifla_cacheinfo {
++pub max_reasm_len: __u32,
++pub tstamp: __u32,
++pub reachable_time: __u32,
++pub retrans_time: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ifla_vlan_flags {
++pub flags: __u32,
++pub mask: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ifla_vlan_qos_mapping {
++pub from: __u32,
++pub to: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct tunnel_msg {
++pub family: __u8,
++pub flags: __u8,
++pub reserved2: __u16,
++pub ifindex: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ifla_vxlan_port_range {
++pub low: __be16,
++pub high: __be16,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ifla_vf_mac {
++pub vf: __u32,
++pub mac: [__u8; 32usize],
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ifla_vf_broadcast {
++pub broadcast: [__u8; 32usize],
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ifla_vf_vlan {
++pub vf: __u32,
++pub vlan: __u32,
++pub qos: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ifla_vf_vlan_info {
++pub vf: __u32,
++pub vlan: __u32,
++pub qos: __u32,
++pub vlan_proto: __be16,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ifla_vf_tx_rate {
++pub vf: __u32,
++pub rate: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ifla_vf_rate {
++pub vf: __u32,
++pub min_tx_rate: __u32,
++pub max_tx_rate: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ifla_vf_spoofchk {
++pub vf: __u32,
++pub setting: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ifla_vf_guid {
++pub vf: __u32,
++pub guid: __u64,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ifla_vf_link_state {
++pub vf: __u32,
++pub link_state: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ifla_vf_rss_query_en {
++pub vf: __u32,
++pub setting: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ifla_vf_trust {
++pub vf: __u32,
++pub setting: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ifla_port_vsi {
++pub vsi_mgr_id: __u8,
++pub vsi_type_id: [__u8; 3usize],
++pub vsi_type_version: __u8,
++pub pad: [__u8; 3usize],
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct if_stats_msg {
++pub family: __u8,
++pub pad1: __u8,
++pub pad2: __u16,
++pub ifindex: __u32,
++pub filter_mask: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ifla_rmnet_flags {
++pub flags: __u32,
++pub mask: __u32,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub struct arpreq {
++pub arp_pa: sockaddr,
++pub arp_ha: sockaddr,
++pub arp_flags: crate::ctypes::c_int,
++pub arp_netmask: sockaddr,
++pub arp_dev: [crate::ctypes::c_char; 16usize],
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub struct arpreq_old {
++pub arp_pa: sockaddr,
++pub arp_ha: sockaddr,
++pub arp_flags: crate::ctypes::c_int,
++pub arp_netmask: sockaddr,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct arphdr {
++pub ar_hrd: __be16,
++pub ar_pro: __be16,
++pub ar_hln: crate::ctypes::c_uchar,
++pub ar_pln: crate::ctypes::c_uchar,
++pub ar_op: __be16,
++}
++pub const _MIPS_ISA_MIPS1: u32 = 1;
++pub const _MIPS_ISA_MIPS2: u32 = 2;
++pub const _MIPS_ISA_MIPS3: u32 = 3;
++pub const _MIPS_ISA_MIPS4: u32 = 4;
++pub const _MIPS_ISA_MIPS5: u32 = 5;
++pub const _MIPS_ISA_MIPS32: u32 = 6;
++pub const _MIPS_ISA_MIPS64: u32 = 7;
++pub const _MIPS_SIM_ABI32: u32 = 1;
++pub const _MIPS_SIM_NABI32: u32 = 2;
++pub const _MIPS_SIM_ABI64: u32 = 3;
++pub const _K_SS_MAXSIZE: u32 = 128;
++pub const SOCK_SNDBUF_LOCK: u32 = 1;
++pub const SOCK_RCVBUF_LOCK: u32 = 2;
++pub const SOCK_BUF_LOCK_MASK: u32 = 3;
++pub const SOCK_TXREHASH_DEFAULT: u32 = 255;
++pub const SOCK_TXREHASH_DISABLED: u32 = 0;
++pub const SOCK_TXREHASH_ENABLED: u32 = 1;
++pub const IFNAMSIZ: u32 = 16;
++pub const IFALIASZ: u32 = 256;
++pub const ALTIFNAMSIZ: u32 = 128;
++pub const GENERIC_HDLC_VERSION: u32 = 4;
++pub const CLOCK_DEFAULT: u32 = 0;
++pub const CLOCK_EXT: u32 = 1;
++pub const CLOCK_INT: u32 = 2;
++pub const CLOCK_TXINT: u32 = 3;
++pub const CLOCK_TXFROMRX: u32 = 4;
++pub const ENCODING_DEFAULT: u32 = 0;
++pub const ENCODING_NRZ: u32 = 1;
++pub const ENCODING_NRZI: u32 = 2;
++pub const ENCODING_FM_MARK: u32 = 3;
++pub const ENCODING_FM_SPACE: u32 = 4;
++pub const ENCODING_MANCHESTER: u32 = 5;
++pub const PARITY_DEFAULT: u32 = 0;
++pub const PARITY_NONE: u32 = 1;
++pub const PARITY_CRC16_PR0: u32 = 2;
++pub const PARITY_CRC16_PR1: u32 = 3;
++pub const PARITY_CRC16_PR0_CCITT: u32 = 4;
++pub const PARITY_CRC16_PR1_CCITT: u32 = 5;
++pub const PARITY_CRC32_PR0_CCITT: u32 = 6;
++pub const PARITY_CRC32_PR1_CCITT: u32 = 7;
++pub const LMI_DEFAULT: u32 = 0;
++pub const LMI_NONE: u32 = 1;
++pub const LMI_ANSI: u32 = 2;
++pub const LMI_CCITT: u32 = 3;
++pub const LMI_CISCO: u32 = 4;
++pub const IF_GET_IFACE: u32 = 1;
++pub const IF_GET_PROTO: u32 = 2;
++pub const IF_IFACE_V35: u32 = 4096;
++pub const IF_IFACE_V24: u32 = 4097;
++pub const IF_IFACE_X21: u32 = 4098;
++pub const IF_IFACE_T1: u32 = 4099;
++pub const IF_IFACE_E1: u32 = 4100;
++pub const IF_IFACE_SYNC_SERIAL: u32 = 4101;
++pub const IF_IFACE_X21D: u32 = 4102;
++pub const IF_PROTO_HDLC: u32 = 8192;
++pub const IF_PROTO_PPP: u32 = 8193;
++pub const IF_PROTO_CISCO: u32 = 8194;
++pub const IF_PROTO_FR: u32 = 8195;
++pub const IF_PROTO_FR_ADD_PVC: u32 = 8196;
++pub const IF_PROTO_FR_DEL_PVC: u32 = 8197;
++pub const IF_PROTO_X25: u32 = 8198;
++pub const IF_PROTO_HDLC_ETH: u32 = 8199;
++pub const IF_PROTO_FR_ADD_ETH_PVC: u32 = 8200;
++pub const IF_PROTO_FR_DEL_ETH_PVC: u32 = 8201;
++pub const IF_PROTO_FR_PVC: u32 = 8202;
++pub const IF_PROTO_FR_ETH_PVC: u32 = 8203;
++pub const IF_PROTO_RAW: u32 = 8204;
++pub const IFHWADDRLEN: u32 = 6;
++pub const ETH_ALEN: u32 = 6;
++pub const ETH_TLEN: u32 = 2;
++pub const ETH_HLEN: u32 = 14;
++pub const ETH_ZLEN: u32 = 60;
++pub const ETH_DATA_LEN: u32 = 1500;
++pub const ETH_FRAME_LEN: u32 = 1514;
++pub const ETH_FCS_LEN: u32 = 4;
++pub const ETH_MIN_MTU: u32 = 68;
++pub const ETH_MAX_MTU: u32 = 65535;
++pub const ETH_P_LOOP: u32 = 96;
++pub const ETH_P_PUP: u32 = 512;
++pub const ETH_P_PUPAT: u32 = 513;
++pub const ETH_P_TSN: u32 = 8944;
++pub const ETH_P_ERSPAN2: u32 = 8939;
++pub const ETH_P_IP: u32 = 2048;
++pub const ETH_P_X25: u32 = 2053;
++pub const ETH_P_ARP: u32 = 2054;
++pub const ETH_P_BPQ: u32 = 2303;
++pub const ETH_P_IEEEPUP: u32 = 2560;
++pub const ETH_P_IEEEPUPAT: u32 = 2561;
++pub const ETH_P_BATMAN: u32 = 17157;
++pub const ETH_P_DEC: u32 = 24576;
++pub const ETH_P_DNA_DL: u32 = 24577;
++pub const ETH_P_DNA_RC: u32 = 24578;
++pub const ETH_P_DNA_RT: u32 = 24579;
++pub const ETH_P_LAT: u32 = 24580;
++pub const ETH_P_DIAG: u32 = 24581;
++pub const ETH_P_CUST: u32 = 24582;
++pub const ETH_P_SCA: u32 = 24583;
++pub const ETH_P_TEB: u32 = 25944;
++pub const ETH_P_RARP: u32 = 32821;
++pub const ETH_P_ATALK: u32 = 32923;
++pub const ETH_P_AARP: u32 = 33011;
++pub const ETH_P_8021Q: u32 = 33024;
++pub const ETH_P_ERSPAN: u32 = 35006;
++pub const ETH_P_IPX: u32 = 33079;
++pub const ETH_P_IPV6: u32 = 34525;
++pub const ETH_P_PAUSE: u32 = 34824;
++pub const ETH_P_SLOW: u32 = 34825;
++pub const ETH_P_WCCP: u32 = 34878;
++pub const ETH_P_MPLS_UC: u32 = 34887;
++pub const ETH_P_MPLS_MC: u32 = 34888;
++pub const ETH_P_ATMMPOA: u32 = 34892;
++pub const ETH_P_PPP_DISC: u32 = 34915;
++pub const ETH_P_PPP_SES: u32 = 34916;
++pub const ETH_P_LINK_CTL: u32 = 34924;
++pub const ETH_P_ATMFATE: u32 = 34948;
++pub const ETH_P_PAE: u32 = 34958;
++pub const ETH_P_PROFINET: u32 = 34962;
++pub const ETH_P_REALTEK: u32 = 34969;
++pub const ETH_P_AOE: u32 = 34978;
++pub const ETH_P_ETHERCAT: u32 = 34980;
++pub const ETH_P_8021AD: u32 = 34984;
++pub const ETH_P_802_EX1: u32 = 34997;
++pub const ETH_P_PREAUTH: u32 = 35015;
++pub const ETH_P_TIPC: u32 = 35018;
++pub const ETH_P_LLDP: u32 = 35020;
++pub const ETH_P_MRP: u32 = 35043;
++pub const ETH_P_MACSEC: u32 = 35045;
++pub const ETH_P_8021AH: u32 = 35047;
++pub const ETH_P_MVRP: u32 = 35061;
++pub const ETH_P_1588: u32 = 35063;
++pub const ETH_P_NCSI: u32 = 35064;
++pub const ETH_P_PRP: u32 = 35067;
++pub const ETH_P_CFM: u32 = 35074;
++pub const ETH_P_FCOE: u32 = 35078;
++pub const ETH_P_IBOE: u32 = 35093;
++pub const ETH_P_TDLS: u32 = 35085;
++pub const ETH_P_FIP: u32 = 35092;
++pub const ETH_P_80221: u32 = 35095;
++pub const ETH_P_HSR: u32 = 35119;
++pub const ETH_P_NSH: u32 = 35151;
++pub const ETH_P_LOOPBACK: u32 = 36864;
++pub const ETH_P_QINQ1: u32 = 37120;
++pub const ETH_P_QINQ2: u32 = 37376;
++pub const ETH_P_QINQ3: u32 = 37632;
++pub const ETH_P_EDSA: u32 = 56026;
++pub const ETH_P_DSA_8021Q: u32 = 56027;
++pub const ETH_P_DSA_A5PSW: u32 = 57345;
++pub const ETH_P_IFE: u32 = 60734;
++pub const ETH_P_AF_IUCV: u32 = 64507;
++pub const ETH_P_802_3_MIN: u32 = 1536;
++pub const ETH_P_802_3: u32 = 1;
++pub const ETH_P_AX25: u32 = 2;
++pub const ETH_P_ALL: u32 = 3;
++pub const ETH_P_802_2: u32 = 4;
++pub const ETH_P_SNAP: u32 = 5;
++pub const ETH_P_DDCMP: u32 = 6;
++pub const ETH_P_WAN_PPP: u32 = 7;
++pub const ETH_P_PPP_MP: u32 = 8;
++pub const ETH_P_LOCALTALK: u32 = 9;
++pub const ETH_P_CAN: u32 = 12;
++pub const ETH_P_CANFD: u32 = 13;
++pub const ETH_P_CANXL: u32 = 14;
++pub const ETH_P_PPPTALK: u32 = 16;
++pub const ETH_P_TR_802_2: u32 = 17;
++pub const ETH_P_MOBITEX: u32 = 21;
++pub const ETH_P_CONTROL: u32 = 22;
++pub const ETH_P_IRDA: u32 = 23;
++pub const ETH_P_ECONET: u32 = 24;
++pub const ETH_P_HDLC: u32 = 25;
++pub const ETH_P_ARCNET: u32 = 26;
++pub const ETH_P_DSA: u32 = 27;
++pub const ETH_P_TRAILER: u32 = 28;
++pub const ETH_P_PHONET: u32 = 245;
++pub const ETH_P_IEEE802154: u32 = 246;
++pub const ETH_P_CAIF: u32 = 247;
++pub const ETH_P_XDSA: u32 = 248;
++pub const ETH_P_MAP: u32 = 249;
++pub const ETH_P_MCTP: u32 = 250;
++pub const __BIG_ENDIAN: u32 = 4321;
++pub const PACKET_HOST: u32 = 0;
++pub const PACKET_BROADCAST: u32 = 1;
++pub const PACKET_MULTICAST: u32 = 2;
++pub const PACKET_OTHERHOST: u32 = 3;
++pub const PACKET_OUTGOING: u32 = 4;
++pub const PACKET_LOOPBACK: u32 = 5;
++pub const PACKET_USER: u32 = 6;
++pub const PACKET_KERNEL: u32 = 7;
++pub const PACKET_FASTROUTE: u32 = 6;
++pub const PACKET_ADD_MEMBERSHIP: u32 = 1;
++pub const PACKET_DROP_MEMBERSHIP: u32 = 2;
++pub const PACKET_RECV_OUTPUT: u32 = 3;
++pub const PACKET_RX_RING: u32 = 5;
++pub const PACKET_STATISTICS: u32 = 6;
++pub const PACKET_COPY_THRESH: u32 = 7;
++pub const PACKET_AUXDATA: u32 = 8;
++pub const PACKET_ORIGDEV: u32 = 9;
++pub const PACKET_VERSION: u32 = 10;
++pub const PACKET_HDRLEN: u32 = 11;
++pub const PACKET_RESERVE: u32 = 12;
++pub const PACKET_TX_RING: u32 = 13;
++pub const PACKET_LOSS: u32 = 14;
++pub const PACKET_VNET_HDR: u32 = 15;
++pub const PACKET_TX_TIMESTAMP: u32 = 16;
++pub const PACKET_TIMESTAMP: u32 = 17;
++pub const PACKET_FANOUT: u32 = 18;
++pub const PACKET_TX_HAS_OFF: u32 = 19;
++pub const PACKET_QDISC_BYPASS: u32 = 20;
++pub const PACKET_ROLLOVER_STATS: u32 = 21;
++pub const PACKET_FANOUT_DATA: u32 = 22;
++pub const PACKET_IGNORE_OUTGOING: u32 = 23;
++pub const PACKET_FANOUT_HASH: u32 = 0;
++pub const PACKET_FANOUT_LB: u32 = 1;
++pub const PACKET_FANOUT_CPU: u32 = 2;
++pub const PACKET_FANOUT_ROLLOVER: u32 = 3;
++pub const PACKET_FANOUT_RND: u32 = 4;
++pub const PACKET_FANOUT_QM: u32 = 5;
++pub const PACKET_FANOUT_CBPF: u32 = 6;
++pub const PACKET_FANOUT_EBPF: u32 = 7;
++pub const PACKET_FANOUT_FLAG_ROLLOVER: u32 = 4096;
++pub const PACKET_FANOUT_FLAG_UNIQUEID: u32 = 8192;
++pub const PACKET_FANOUT_FLAG_IGNORE_OUTGOING: u32 = 16384;
++pub const PACKET_FANOUT_FLAG_DEFRAG: u32 = 32768;
++pub const TP_STATUS_KERNEL: u32 = 0;
++pub const TP_STATUS_USER: u32 = 1;
++pub const TP_STATUS_COPY: u32 = 2;
++pub const TP_STATUS_LOSING: u32 = 4;
++pub const TP_STATUS_CSUMNOTREADY: u32 = 8;
++pub const TP_STATUS_VLAN_VALID: u32 = 16;
++pub const TP_STATUS_BLK_TMO: u32 = 32;
++pub const TP_STATUS_VLAN_TPID_VALID: u32 = 64;
++pub const TP_STATUS_CSUM_VALID: u32 = 128;
++pub const TP_STATUS_GSO_TCP: u32 = 256;
++pub const TP_STATUS_AVAILABLE: u32 = 0;
++pub const TP_STATUS_SEND_REQUEST: u32 = 1;
++pub const TP_STATUS_SENDING: u32 = 2;
++pub const TP_STATUS_WRONG_FORMAT: u32 = 4;
++pub const TP_STATUS_TS_SOFTWARE: u32 = 536870912;
++pub const TP_STATUS_TS_SYS_HARDWARE: u32 = 1073741824;
++pub const TP_STATUS_TS_RAW_HARDWARE: u32 = 2147483648;
++pub const TP_FT_REQ_FILL_RXHASH: u32 = 1;
++pub const TPACKET_ALIGNMENT: u32 = 16;
++pub const PACKET_MR_MULTICAST: u32 = 0;
++pub const PACKET_MR_PROMISC: u32 = 1;
++pub const PACKET_MR_ALLMULTI: u32 = 2;
++pub const PACKET_MR_UNICAST: u32 = 3;
++pub const NETLINK_ROUTE: u32 = 0;
++pub const NETLINK_UNUSED: u32 = 1;
++pub const NETLINK_USERSOCK: u32 = 2;
++pub const NETLINK_FIREWALL: u32 = 3;
++pub const NETLINK_SOCK_DIAG: u32 = 4;
++pub const NETLINK_NFLOG: u32 = 5;
++pub const NETLINK_XFRM: u32 = 6;
++pub const NETLINK_SELINUX: u32 = 7;
++pub const NETLINK_ISCSI: u32 = 8;
++pub const NETLINK_AUDIT: u32 = 9;
++pub const NETLINK_FIB_LOOKUP: u32 = 10;
++pub const NETLINK_CONNECTOR: u32 = 11;
++pub const NETLINK_NETFILTER: u32 = 12;
++pub const NETLINK_IP6_FW: u32 = 13;
++pub const NETLINK_DNRTMSG: u32 = 14;
++pub const NETLINK_KOBJECT_UEVENT: u32 = 15;
++pub const NETLINK_GENERIC: u32 = 16;
++pub const NETLINK_SCSITRANSPORT: u32 = 18;
++pub const NETLINK_ECRYPTFS: u32 = 19;
++pub const NETLINK_RDMA: u32 = 20;
++pub const NETLINK_CRYPTO: u32 = 21;
++pub const NETLINK_SMC: u32 = 22;
++pub const NETLINK_INET_DIAG: u32 = 4;
++pub const MAX_LINKS: u32 = 32;
++pub const NLM_F_REQUEST: u32 = 1;
++pub const NLM_F_MULTI: u32 = 2;
++pub const NLM_F_ACK: u32 = 4;
++pub const NLM_F_ECHO: u32 = 8;
++pub const NLM_F_DUMP_INTR: u32 = 16;
++pub const NLM_F_DUMP_FILTERED: u32 = 32;
++pub const NLM_F_ROOT: u32 = 256;
++pub const NLM_F_MATCH: u32 = 512;
++pub const NLM_F_ATOMIC: u32 = 1024;
++pub const NLM_F_DUMP: u32 = 768;
++pub const NLM_F_REPLACE: u32 = 256;
++pub const NLM_F_EXCL: u32 = 512;
++pub const NLM_F_CREATE: u32 = 1024;
++pub const NLM_F_APPEND: u32 = 2048;
++pub const NLM_F_NONREC: u32 = 256;
++pub const NLM_F_BULK: u32 = 512;
++pub const NLM_F_CAPPED: u32 = 256;
++pub const NLM_F_ACK_TLVS: u32 = 512;
++pub const NLMSG_ALIGNTO: u32 = 4;
++pub const NLMSG_NOOP: u32 = 1;
++pub const NLMSG_ERROR: u32 = 2;
++pub const NLMSG_DONE: u32 = 3;
++pub const NLMSG_OVERRUN: u32 = 4;
++pub const NLMSG_MIN_TYPE: u32 = 16;
++pub const NETLINK_ADD_MEMBERSHIP: u32 = 1;
++pub const NETLINK_DROP_MEMBERSHIP: u32 = 2;
++pub const NETLINK_PKTINFO: u32 = 3;
++pub const NETLINK_BROADCAST_ERROR: u32 = 4;
++pub const NETLINK_NO_ENOBUFS: u32 = 5;
++pub const NETLINK_RX_RING: u32 = 6;
++pub const NETLINK_TX_RING: u32 = 7;
++pub const NETLINK_LISTEN_ALL_NSID: u32 = 8;
++pub const NETLINK_LIST_MEMBERSHIPS: u32 = 9;
++pub const NETLINK_CAP_ACK: u32 = 10;
++pub const NETLINK_EXT_ACK: u32 = 11;
++pub const NETLINK_GET_STRICT_CHK: u32 = 12;
++pub const NL_MMAP_MSG_ALIGNMENT: u32 = 4;
++pub const NET_MAJOR: u32 = 36;
++pub const NLA_F_NESTED: u32 = 32768;
++pub const NLA_F_NET_BYTEORDER: u32 = 16384;
++pub const NLA_TYPE_MASK: i32 = -49153;
++pub const NLA_ALIGNTO: u32 = 4;
++pub const MACVLAN_FLAG_NOPROMISC: u32 = 1;
++pub const MACVLAN_FLAG_NODST: u32 = 2;
++pub const IPVLAN_F_PRIVATE: u32 = 1;
++pub const IPVLAN_F_VEPA: u32 = 2;
++pub const TUNNEL_MSG_FLAG_STATS: u32 = 1;
++pub const TUNNEL_MSG_VALID_USER_FLAGS: u32 = 1;
++pub const MAX_VLAN_LIST_LEN: u32 = 1;
++pub const PORT_PROFILE_MAX: u32 = 40;
++pub const PORT_UUID_MAX: u32 = 16;
++pub const PORT_SELF_VF: i32 = -1;
++pub const XDP_FLAGS_UPDATE_IF_NOEXIST: u32 = 1;
++pub const XDP_FLAGS_SKB_MODE: u32 = 2;
++pub const XDP_FLAGS_DRV_MODE: u32 = 4;
++pub const XDP_FLAGS_HW_MODE: u32 = 8;
++pub const XDP_FLAGS_REPLACE: u32 = 16;
++pub const XDP_FLAGS_MODES: u32 = 14;
++pub const XDP_FLAGS_MASK: u32 = 31;
++pub const RMNET_FLAGS_INGRESS_DEAGGREGATION: u32 = 1;
++pub const RMNET_FLAGS_INGRESS_MAP_COMMANDS: u32 = 2;
++pub const RMNET_FLAGS_INGRESS_MAP_CKSUMV4: u32 = 4;
++pub const RMNET_FLAGS_EGRESS_MAP_CKSUMV4: u32 = 8;
++pub const RMNET_FLAGS_INGRESS_MAP_CKSUMV5: u32 = 16;
++pub const RMNET_FLAGS_EGRESS_MAP_CKSUMV5: u32 = 32;
++pub const MAX_ADDR_LEN: u32 = 32;
++pub const INIT_NETDEV_GROUP: u32 = 0;
++pub const NET_NAME_UNKNOWN: u32 = 0;
++pub const NET_NAME_ENUM: u32 = 1;
++pub const NET_NAME_PREDICTABLE: u32 = 2;
++pub const NET_NAME_USER: u32 = 3;
++pub const NET_NAME_RENAMED: u32 = 4;
++pub const NET_ADDR_PERM: u32 = 0;
++pub const NET_ADDR_RANDOM: u32 = 1;
++pub const NET_ADDR_STOLEN: u32 = 2;
++pub const NET_ADDR_SET: u32 = 3;
++pub const ARPHRD_NETROM: u32 = 0;
++pub const ARPHRD_ETHER: u32 = 1;
++pub const ARPHRD_EETHER: u32 = 2;
++pub const ARPHRD_AX25: u32 = 3;
++pub const ARPHRD_PRONET: u32 = 4;
++pub const ARPHRD_CHAOS: u32 = 5;
++pub const ARPHRD_IEEE802: u32 = 6;
++pub const ARPHRD_ARCNET: u32 = 7;
++pub const ARPHRD_APPLETLK: u32 = 8;
++pub const ARPHRD_DLCI: u32 = 15;
++pub const ARPHRD_ATM: u32 = 19;
++pub const ARPHRD_METRICOM: u32 = 23;
++pub const ARPHRD_IEEE1394: u32 = 24;
++pub const ARPHRD_EUI64: u32 = 27;
++pub const ARPHRD_INFINIBAND: u32 = 32;
++pub const ARPHRD_SLIP: u32 = 256;
++pub const ARPHRD_CSLIP: u32 = 257;
++pub const ARPHRD_SLIP6: u32 = 258;
++pub const ARPHRD_CSLIP6: u32 = 259;
++pub const ARPHRD_RSRVD: u32 = 260;
++pub const ARPHRD_ADAPT: u32 = 264;
++pub const ARPHRD_ROSE: u32 = 270;
++pub const ARPHRD_X25: u32 = 271;
++pub const ARPHRD_HWX25: u32 = 272;
++pub const ARPHRD_CAN: u32 = 280;
++pub const ARPHRD_MCTP: u32 = 290;
++pub const ARPHRD_PPP: u32 = 512;
++pub const ARPHRD_CISCO: u32 = 513;
++pub const ARPHRD_HDLC: u32 = 513;
++pub const ARPHRD_LAPB: u32 = 516;
++pub const ARPHRD_DDCMP: u32 = 517;
++pub const ARPHRD_RAWHDLC: u32 = 518;
++pub const ARPHRD_RAWIP: u32 = 519;
++pub const ARPHRD_TUNNEL: u32 = 768;
++pub const ARPHRD_TUNNEL6: u32 = 769;
++pub const ARPHRD_FRAD: u32 = 770;
++pub const ARPHRD_SKIP: u32 = 771;
++pub const ARPHRD_LOOPBACK: u32 = 772;
++pub const ARPHRD_LOCALTLK: u32 = 773;
++pub const ARPHRD_FDDI: u32 = 774;
++pub const ARPHRD_BIF: u32 = 775;
++pub const ARPHRD_SIT: u32 = 776;
++pub const ARPHRD_IPDDP: u32 = 777;
++pub const ARPHRD_IPGRE: u32 = 778;
++pub const ARPHRD_PIMREG: u32 = 779;
++pub const ARPHRD_HIPPI: u32 = 780;
++pub const ARPHRD_ASH: u32 = 781;
++pub const ARPHRD_ECONET: u32 = 782;
++pub const ARPHRD_IRDA: u32 = 783;
++pub const ARPHRD_FCPP: u32 = 784;
++pub const ARPHRD_FCAL: u32 = 785;
++pub const ARPHRD_FCPL: u32 = 786;
++pub const ARPHRD_FCFABRIC: u32 = 787;
++pub const ARPHRD_IEEE802_TR: u32 = 800;
++pub const ARPHRD_IEEE80211: u32 = 801;
++pub const ARPHRD_IEEE80211_PRISM: u32 = 802;
++pub const ARPHRD_IEEE80211_RADIOTAP: u32 = 803;
++pub const ARPHRD_IEEE802154: u32 = 804;
++pub const ARPHRD_IEEE802154_MONITOR: u32 = 805;
++pub const ARPHRD_PHONET: u32 = 820;
++pub const ARPHRD_PHONET_PIPE: u32 = 821;
++pub const ARPHRD_CAIF: u32 = 822;
++pub const ARPHRD_IP6GRE: u32 = 823;
++pub const ARPHRD_NETLINK: u32 = 824;
++pub const ARPHRD_6LOWPAN: u32 = 825;
++pub const ARPHRD_VSOCKMON: u32 = 826;
++pub const ARPHRD_VOID: u32 = 65535;
++pub const ARPHRD_NONE: u32 = 65534;
++pub const ARPOP_REQUEST: u32 = 1;
++pub const ARPOP_REPLY: u32 = 2;
++pub const ARPOP_RREQUEST: u32 = 3;
++pub const ARPOP_RREPLY: u32 = 4;
++pub const ARPOP_InREQUEST: u32 = 8;
++pub const ARPOP_InREPLY: u32 = 9;
++pub const ARPOP_NAK: u32 = 10;
++pub const ATF_COM: u32 = 2;
++pub const ATF_PERM: u32 = 4;
++pub const ATF_PUBL: u32 = 8;
++pub const ATF_USETRAILERS: u32 = 16;
++pub const ATF_NETMASK: u32 = 32;
++pub const ATF_DONTPUB: u32 = 64;
++pub const IF_OPER_UNKNOWN: _bindgen_ty_1 = _bindgen_ty_1::IF_OPER_UNKNOWN;
++pub const IF_OPER_NOTPRESENT: _bindgen_ty_1 = _bindgen_ty_1::IF_OPER_NOTPRESENT;
++pub const IF_OPER_DOWN: _bindgen_ty_1 = _bindgen_ty_1::IF_OPER_DOWN;
++pub const IF_OPER_LOWERLAYERDOWN: _bindgen_ty_1 = _bindgen_ty_1::IF_OPER_LOWERLAYERDOWN;
++pub const IF_OPER_TESTING: _bindgen_ty_1 = _bindgen_ty_1::IF_OPER_TESTING;
++pub const IF_OPER_DORMANT: _bindgen_ty_1 = _bindgen_ty_1::IF_OPER_DORMANT;
++pub const IF_OPER_UP: _bindgen_ty_1 = _bindgen_ty_1::IF_OPER_UP;
++pub const IF_LINK_MODE_DEFAULT: _bindgen_ty_2 = _bindgen_ty_2::IF_LINK_MODE_DEFAULT;
++pub const IF_LINK_MODE_DORMANT: _bindgen_ty_2 = _bindgen_ty_2::IF_LINK_MODE_DORMANT;
++pub const IF_LINK_MODE_TESTING: _bindgen_ty_2 = _bindgen_ty_2::IF_LINK_MODE_TESTING;
++pub const NETLINK_UNCONNECTED: _bindgen_ty_3 = _bindgen_ty_3::NETLINK_UNCONNECTED;
++pub const NETLINK_CONNECTED: _bindgen_ty_3 = _bindgen_ty_3::NETLINK_CONNECTED;
++pub const IFLA_UNSPEC: _bindgen_ty_4 = _bindgen_ty_4::IFLA_UNSPEC;
++pub const IFLA_ADDRESS: _bindgen_ty_4 = _bindgen_ty_4::IFLA_ADDRESS;
++pub const IFLA_BROADCAST: _bindgen_ty_4 = _bindgen_ty_4::IFLA_BROADCAST;
++pub const IFLA_IFNAME: _bindgen_ty_4 = _bindgen_ty_4::IFLA_IFNAME;
++pub const IFLA_MTU: _bindgen_ty_4 = _bindgen_ty_4::IFLA_MTU;
++pub const IFLA_LINK: _bindgen_ty_4 = _bindgen_ty_4::IFLA_LINK;
++pub const IFLA_QDISC: _bindgen_ty_4 = _bindgen_ty_4::IFLA_QDISC;
++pub const IFLA_STATS: _bindgen_ty_4 = _bindgen_ty_4::IFLA_STATS;
++pub const IFLA_COST: _bindgen_ty_4 = _bindgen_ty_4::IFLA_COST;
++pub const IFLA_PRIORITY: _bindgen_ty_4 = _bindgen_ty_4::IFLA_PRIORITY;
++pub const IFLA_MASTER: _bindgen_ty_4 = _bindgen_ty_4::IFLA_MASTER;
++pub const IFLA_WIRELESS: _bindgen_ty_4 = _bindgen_ty_4::IFLA_WIRELESS;
++pub const IFLA_PROTINFO: _bindgen_ty_4 = _bindgen_ty_4::IFLA_PROTINFO;
++pub const IFLA_TXQLEN: _bindgen_ty_4 = _bindgen_ty_4::IFLA_TXQLEN;
++pub const IFLA_MAP: _bindgen_ty_4 = _bindgen_ty_4::IFLA_MAP;
++pub const IFLA_WEIGHT: _bindgen_ty_4 = _bindgen_ty_4::IFLA_WEIGHT;
++pub const IFLA_OPERSTATE: _bindgen_ty_4 = _bindgen_ty_4::IFLA_OPERSTATE;
++pub const IFLA_LINKMODE: _bindgen_ty_4 = _bindgen_ty_4::IFLA_LINKMODE;
++pub const IFLA_LINKINFO: _bindgen_ty_4 = _bindgen_ty_4::IFLA_LINKINFO;
++pub const IFLA_NET_NS_PID: _bindgen_ty_4 = _bindgen_ty_4::IFLA_NET_NS_PID;
++pub const IFLA_IFALIAS: _bindgen_ty_4 = _bindgen_ty_4::IFLA_IFALIAS;
++pub const IFLA_NUM_VF: _bindgen_ty_4 = _bindgen_ty_4::IFLA_NUM_VF;
++pub const IFLA_VFINFO_LIST: _bindgen_ty_4 = _bindgen_ty_4::IFLA_VFINFO_LIST;
++pub const IFLA_STATS64: _bindgen_ty_4 = _bindgen_ty_4::IFLA_STATS64;
++pub const IFLA_VF_PORTS: _bindgen_ty_4 = _bindgen_ty_4::IFLA_VF_PORTS;
++pub const IFLA_PORT_SELF: _bindgen_ty_4 = _bindgen_ty_4::IFLA_PORT_SELF;
++pub const IFLA_AF_SPEC: _bindgen_ty_4 = _bindgen_ty_4::IFLA_AF_SPEC;
++pub const IFLA_GROUP: _bindgen_ty_4 = _bindgen_ty_4::IFLA_GROUP;
++pub const IFLA_NET_NS_FD: _bindgen_ty_4 = _bindgen_ty_4::IFLA_NET_NS_FD;
++pub const IFLA_EXT_MASK: _bindgen_ty_4 = _bindgen_ty_4::IFLA_EXT_MASK;
++pub const IFLA_PROMISCUITY: _bindgen_ty_4 = _bindgen_ty_4::IFLA_PROMISCUITY;
++pub const IFLA_NUM_TX_QUEUES: _bindgen_ty_4 = _bindgen_ty_4::IFLA_NUM_TX_QUEUES;
++pub const IFLA_NUM_RX_QUEUES: _bindgen_ty_4 = _bindgen_ty_4::IFLA_NUM_RX_QUEUES;
++pub const IFLA_CARRIER: _bindgen_ty_4 = _bindgen_ty_4::IFLA_CARRIER;
++pub const IFLA_PHYS_PORT_ID: _bindgen_ty_4 = _bindgen_ty_4::IFLA_PHYS_PORT_ID;
++pub const IFLA_CARRIER_CHANGES: _bindgen_ty_4 = _bindgen_ty_4::IFLA_CARRIER_CHANGES;
++pub const IFLA_PHYS_SWITCH_ID: _bindgen_ty_4 = _bindgen_ty_4::IFLA_PHYS_SWITCH_ID;
++pub const IFLA_LINK_NETNSID: _bindgen_ty_4 = _bindgen_ty_4::IFLA_LINK_NETNSID;
++pub const IFLA_PHYS_PORT_NAME: _bindgen_ty_4 = _bindgen_ty_4::IFLA_PHYS_PORT_NAME;
++pub const IFLA_PROTO_DOWN: _bindgen_ty_4 = _bindgen_ty_4::IFLA_PROTO_DOWN;
++pub const IFLA_GSO_MAX_SEGS: _bindgen_ty_4 = _bindgen_ty_4::IFLA_GSO_MAX_SEGS;
++pub const IFLA_GSO_MAX_SIZE: _bindgen_ty_4 = _bindgen_ty_4::IFLA_GSO_MAX_SIZE;
++pub const IFLA_PAD: _bindgen_ty_4 = _bindgen_ty_4::IFLA_PAD;
++pub const IFLA_XDP: _bindgen_ty_4 = _bindgen_ty_4::IFLA_XDP;
++pub const IFLA_EVENT: _bindgen_ty_4 = _bindgen_ty_4::IFLA_EVENT;
++pub const IFLA_NEW_NETNSID: _bindgen_ty_4 = _bindgen_ty_4::IFLA_NEW_NETNSID;
++pub const IFLA_IF_NETNSID: _bindgen_ty_4 = _bindgen_ty_4::IFLA_IF_NETNSID;
++pub const IFLA_TARGET_NETNSID: _bindgen_ty_4 = _bindgen_ty_4::IFLA_IF_NETNSID;
++pub const IFLA_CARRIER_UP_COUNT: _bindgen_ty_4 = _bindgen_ty_4::IFLA_CARRIER_UP_COUNT;
++pub const IFLA_CARRIER_DOWN_COUNT: _bindgen_ty_4 = _bindgen_ty_4::IFLA_CARRIER_DOWN_COUNT;
++pub const IFLA_NEW_IFINDEX: _bindgen_ty_4 = _bindgen_ty_4::IFLA_NEW_IFINDEX;
++pub const IFLA_MIN_MTU: _bindgen_ty_4 = _bindgen_ty_4::IFLA_MIN_MTU;
++pub const IFLA_MAX_MTU: _bindgen_ty_4 = _bindgen_ty_4::IFLA_MAX_MTU;
++pub const IFLA_PROP_LIST: _bindgen_ty_4 = _bindgen_ty_4::IFLA_PROP_LIST;
++pub const IFLA_ALT_IFNAME: _bindgen_ty_4 = _bindgen_ty_4::IFLA_ALT_IFNAME;
++pub const IFLA_PERM_ADDRESS: _bindgen_ty_4 = _bindgen_ty_4::IFLA_PERM_ADDRESS;
++pub const IFLA_PROTO_DOWN_REASON: _bindgen_ty_4 = _bindgen_ty_4::IFLA_PROTO_DOWN_REASON;
++pub const IFLA_PARENT_DEV_NAME: _bindgen_ty_4 = _bindgen_ty_4::IFLA_PARENT_DEV_NAME;
++pub const IFLA_PARENT_DEV_BUS_NAME: _bindgen_ty_4 = _bindgen_ty_4::IFLA_PARENT_DEV_BUS_NAME;
++pub const IFLA_GRO_MAX_SIZE: _bindgen_ty_4 = _bindgen_ty_4::IFLA_GRO_MAX_SIZE;
++pub const IFLA_TSO_MAX_SIZE: _bindgen_ty_4 = _bindgen_ty_4::IFLA_TSO_MAX_SIZE;
++pub const IFLA_TSO_MAX_SEGS: _bindgen_ty_4 = _bindgen_ty_4::IFLA_TSO_MAX_SEGS;
++pub const IFLA_ALLMULTI: _bindgen_ty_4 = _bindgen_ty_4::IFLA_ALLMULTI;
++pub const IFLA_DEVLINK_PORT: _bindgen_ty_4 = _bindgen_ty_4::IFLA_DEVLINK_PORT;
++pub const IFLA_GSO_IPV4_MAX_SIZE: _bindgen_ty_4 = _bindgen_ty_4::IFLA_GSO_IPV4_MAX_SIZE;
++pub const IFLA_GRO_IPV4_MAX_SIZE: _bindgen_ty_4 = _bindgen_ty_4::IFLA_GRO_IPV4_MAX_SIZE;
++pub const __IFLA_MAX: _bindgen_ty_4 = _bindgen_ty_4::__IFLA_MAX;
++pub const IFLA_PROTO_DOWN_REASON_UNSPEC: _bindgen_ty_5 = _bindgen_ty_5::IFLA_PROTO_DOWN_REASON_UNSPEC;
++pub const IFLA_PROTO_DOWN_REASON_MASK: _bindgen_ty_5 = _bindgen_ty_5::IFLA_PROTO_DOWN_REASON_MASK;
++pub const IFLA_PROTO_DOWN_REASON_VALUE: _bindgen_ty_5 = _bindgen_ty_5::IFLA_PROTO_DOWN_REASON_VALUE;
++pub const __IFLA_PROTO_DOWN_REASON_CNT: _bindgen_ty_5 = _bindgen_ty_5::__IFLA_PROTO_DOWN_REASON_CNT;
++pub const IFLA_PROTO_DOWN_REASON_MAX: _bindgen_ty_5 = _bindgen_ty_5::IFLA_PROTO_DOWN_REASON_VALUE;
++pub const IFLA_INET_UNSPEC: _bindgen_ty_6 = _bindgen_ty_6::IFLA_INET_UNSPEC;
++pub const IFLA_INET_CONF: _bindgen_ty_6 = _bindgen_ty_6::IFLA_INET_CONF;
++pub const __IFLA_INET_MAX: _bindgen_ty_6 = _bindgen_ty_6::__IFLA_INET_MAX;
++pub const IFLA_INET6_UNSPEC: _bindgen_ty_7 = _bindgen_ty_7::IFLA_INET6_UNSPEC;
++pub const IFLA_INET6_FLAGS: _bindgen_ty_7 = _bindgen_ty_7::IFLA_INET6_FLAGS;
++pub const IFLA_INET6_CONF: _bindgen_ty_7 = _bindgen_ty_7::IFLA_INET6_CONF;
++pub const IFLA_INET6_STATS: _bindgen_ty_7 = _bindgen_ty_7::IFLA_INET6_STATS;
++pub const IFLA_INET6_MCAST: _bindgen_ty_7 = _bindgen_ty_7::IFLA_INET6_MCAST;
++pub const IFLA_INET6_CACHEINFO: _bindgen_ty_7 = _bindgen_ty_7::IFLA_INET6_CACHEINFO;
++pub const IFLA_INET6_ICMP6STATS: _bindgen_ty_7 = _bindgen_ty_7::IFLA_INET6_ICMP6STATS;
++pub const IFLA_INET6_TOKEN: _bindgen_ty_7 = _bindgen_ty_7::IFLA_INET6_TOKEN;
++pub const IFLA_INET6_ADDR_GEN_MODE: _bindgen_ty_7 = _bindgen_ty_7::IFLA_INET6_ADDR_GEN_MODE;
++pub const IFLA_INET6_RA_MTU: _bindgen_ty_7 = _bindgen_ty_7::IFLA_INET6_RA_MTU;
++pub const __IFLA_INET6_MAX: _bindgen_ty_7 = _bindgen_ty_7::__IFLA_INET6_MAX;
++pub const IFLA_BR_UNSPEC: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_UNSPEC;
++pub const IFLA_BR_FORWARD_DELAY: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_FORWARD_DELAY;
++pub const IFLA_BR_HELLO_TIME: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_HELLO_TIME;
++pub const IFLA_BR_MAX_AGE: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_MAX_AGE;
++pub const IFLA_BR_AGEING_TIME: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_AGEING_TIME;
++pub const IFLA_BR_STP_STATE: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_STP_STATE;
++pub const IFLA_BR_PRIORITY: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_PRIORITY;
++pub const IFLA_BR_VLAN_FILTERING: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_VLAN_FILTERING;
++pub const IFLA_BR_VLAN_PROTOCOL: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_VLAN_PROTOCOL;
++pub const IFLA_BR_GROUP_FWD_MASK: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_GROUP_FWD_MASK;
++pub const IFLA_BR_ROOT_ID: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_ROOT_ID;
++pub const IFLA_BR_BRIDGE_ID: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_BRIDGE_ID;
++pub const IFLA_BR_ROOT_PORT: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_ROOT_PORT;
++pub const IFLA_BR_ROOT_PATH_COST: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_ROOT_PATH_COST;
++pub const IFLA_BR_TOPOLOGY_CHANGE: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_TOPOLOGY_CHANGE;
++pub const IFLA_BR_TOPOLOGY_CHANGE_DETECTED: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_TOPOLOGY_CHANGE_DETECTED;
++pub const IFLA_BR_HELLO_TIMER: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_HELLO_TIMER;
++pub const IFLA_BR_TCN_TIMER: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_TCN_TIMER;
++pub const IFLA_BR_TOPOLOGY_CHANGE_TIMER: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_TOPOLOGY_CHANGE_TIMER;
++pub const IFLA_BR_GC_TIMER: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_GC_TIMER;
++pub const IFLA_BR_GROUP_ADDR: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_GROUP_ADDR;
++pub const IFLA_BR_FDB_FLUSH: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_FDB_FLUSH;
++pub const IFLA_BR_MCAST_ROUTER: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_MCAST_ROUTER;
++pub const IFLA_BR_MCAST_SNOOPING: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_MCAST_SNOOPING;
++pub const IFLA_BR_MCAST_QUERY_USE_IFADDR: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_MCAST_QUERY_USE_IFADDR;
++pub const IFLA_BR_MCAST_QUERIER: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_MCAST_QUERIER;
++pub const IFLA_BR_MCAST_HASH_ELASTICITY: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_MCAST_HASH_ELASTICITY;
++pub const IFLA_BR_MCAST_HASH_MAX: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_MCAST_HASH_MAX;
++pub const IFLA_BR_MCAST_LAST_MEMBER_CNT: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_MCAST_LAST_MEMBER_CNT;
++pub const IFLA_BR_MCAST_STARTUP_QUERY_CNT: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_MCAST_STARTUP_QUERY_CNT;
++pub const IFLA_BR_MCAST_LAST_MEMBER_INTVL: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_MCAST_LAST_MEMBER_INTVL;
++pub const IFLA_BR_MCAST_MEMBERSHIP_INTVL: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_MCAST_MEMBERSHIP_INTVL;
++pub const IFLA_BR_MCAST_QUERIER_INTVL: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_MCAST_QUERIER_INTVL;
++pub const IFLA_BR_MCAST_QUERY_INTVL: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_MCAST_QUERY_INTVL;
++pub const IFLA_BR_MCAST_QUERY_RESPONSE_INTVL: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_MCAST_QUERY_RESPONSE_INTVL;
++pub const IFLA_BR_MCAST_STARTUP_QUERY_INTVL: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_MCAST_STARTUP_QUERY_INTVL;
++pub const IFLA_BR_NF_CALL_IPTABLES: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_NF_CALL_IPTABLES;
++pub const IFLA_BR_NF_CALL_IP6TABLES: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_NF_CALL_IP6TABLES;
++pub const IFLA_BR_NF_CALL_ARPTABLES: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_NF_CALL_ARPTABLES;
++pub const IFLA_BR_VLAN_DEFAULT_PVID: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_VLAN_DEFAULT_PVID;
++pub const IFLA_BR_PAD: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_PAD;
++pub const IFLA_BR_VLAN_STATS_ENABLED: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_VLAN_STATS_ENABLED;
++pub const IFLA_BR_MCAST_STATS_ENABLED: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_MCAST_STATS_ENABLED;
++pub const IFLA_BR_MCAST_IGMP_VERSION: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_MCAST_IGMP_VERSION;
++pub const IFLA_BR_MCAST_MLD_VERSION: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_MCAST_MLD_VERSION;
++pub const IFLA_BR_VLAN_STATS_PER_PORT: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_VLAN_STATS_PER_PORT;
++pub const IFLA_BR_MULTI_BOOLOPT: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_MULTI_BOOLOPT;
++pub const IFLA_BR_MCAST_QUERIER_STATE: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_MCAST_QUERIER_STATE;
++pub const __IFLA_BR_MAX: _bindgen_ty_8 = _bindgen_ty_8::__IFLA_BR_MAX;
++pub const BRIDGE_MODE_UNSPEC: _bindgen_ty_9 = _bindgen_ty_9::BRIDGE_MODE_UNSPEC;
++pub const BRIDGE_MODE_HAIRPIN: _bindgen_ty_9 = _bindgen_ty_9::BRIDGE_MODE_HAIRPIN;
++pub const IFLA_BRPORT_UNSPEC: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_UNSPEC;
++pub const IFLA_BRPORT_STATE: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_STATE;
++pub const IFLA_BRPORT_PRIORITY: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_PRIORITY;
++pub const IFLA_BRPORT_COST: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_COST;
++pub const IFLA_BRPORT_MODE: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_MODE;
++pub const IFLA_BRPORT_GUARD: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_GUARD;
++pub const IFLA_BRPORT_PROTECT: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_PROTECT;
++pub const IFLA_BRPORT_FAST_LEAVE: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_FAST_LEAVE;
++pub const IFLA_BRPORT_LEARNING: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_LEARNING;
++pub const IFLA_BRPORT_UNICAST_FLOOD: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_UNICAST_FLOOD;
++pub const IFLA_BRPORT_PROXYARP: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_PROXYARP;
++pub const IFLA_BRPORT_LEARNING_SYNC: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_LEARNING_SYNC;
++pub const IFLA_BRPORT_PROXYARP_WIFI: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_PROXYARP_WIFI;
++pub const IFLA_BRPORT_ROOT_ID: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_ROOT_ID;
++pub const IFLA_BRPORT_BRIDGE_ID: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_BRIDGE_ID;
++pub const IFLA_BRPORT_DESIGNATED_PORT: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_DESIGNATED_PORT;
++pub const IFLA_BRPORT_DESIGNATED_COST: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_DESIGNATED_COST;
++pub const IFLA_BRPORT_ID: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_ID;
++pub const IFLA_BRPORT_NO: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_NO;
++pub const IFLA_BRPORT_TOPOLOGY_CHANGE_ACK: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_TOPOLOGY_CHANGE_ACK;
++pub const IFLA_BRPORT_CONFIG_PENDING: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_CONFIG_PENDING;
++pub const IFLA_BRPORT_MESSAGE_AGE_TIMER: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_MESSAGE_AGE_TIMER;
++pub const IFLA_BRPORT_FORWARD_DELAY_TIMER: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_FORWARD_DELAY_TIMER;
++pub const IFLA_BRPORT_HOLD_TIMER: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_HOLD_TIMER;
++pub const IFLA_BRPORT_FLUSH: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_FLUSH;
++pub const IFLA_BRPORT_MULTICAST_ROUTER: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_MULTICAST_ROUTER;
++pub const IFLA_BRPORT_PAD: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_PAD;
++pub const IFLA_BRPORT_MCAST_FLOOD: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_MCAST_FLOOD;
++pub const IFLA_BRPORT_MCAST_TO_UCAST: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_MCAST_TO_UCAST;
++pub const IFLA_BRPORT_VLAN_TUNNEL: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_VLAN_TUNNEL;
++pub const IFLA_BRPORT_BCAST_FLOOD: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_BCAST_FLOOD;
++pub const IFLA_BRPORT_GROUP_FWD_MASK: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_GROUP_FWD_MASK;
++pub const IFLA_BRPORT_NEIGH_SUPPRESS: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_NEIGH_SUPPRESS;
++pub const IFLA_BRPORT_ISOLATED: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_ISOLATED;
++pub const IFLA_BRPORT_BACKUP_PORT: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_BACKUP_PORT;
++pub const IFLA_BRPORT_MRP_RING_OPEN: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_MRP_RING_OPEN;
++pub const IFLA_BRPORT_MRP_IN_OPEN: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_MRP_IN_OPEN;
++pub const IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT;
++pub const IFLA_BRPORT_MCAST_EHT_HOSTS_CNT: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_MCAST_EHT_HOSTS_CNT;
++pub const IFLA_BRPORT_LOCKED: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_LOCKED;
++pub const IFLA_BRPORT_MAB: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_MAB;
++pub const IFLA_BRPORT_MCAST_N_GROUPS: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_MCAST_N_GROUPS;
++pub const IFLA_BRPORT_MCAST_MAX_GROUPS: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_MCAST_MAX_GROUPS;
++pub const __IFLA_BRPORT_MAX: _bindgen_ty_10 = _bindgen_ty_10::__IFLA_BRPORT_MAX;
++pub const IFLA_INFO_UNSPEC: _bindgen_ty_11 = _bindgen_ty_11::IFLA_INFO_UNSPEC;
++pub const IFLA_INFO_KIND: _bindgen_ty_11 = _bindgen_ty_11::IFLA_INFO_KIND;
++pub const IFLA_INFO_DATA: _bindgen_ty_11 = _bindgen_ty_11::IFLA_INFO_DATA;
++pub const IFLA_INFO_XSTATS: _bindgen_ty_11 = _bindgen_ty_11::IFLA_INFO_XSTATS;
++pub const IFLA_INFO_SLAVE_KIND: _bindgen_ty_11 = _bindgen_ty_11::IFLA_INFO_SLAVE_KIND;
++pub const IFLA_INFO_SLAVE_DATA: _bindgen_ty_11 = _bindgen_ty_11::IFLA_INFO_SLAVE_DATA;
++pub const __IFLA_INFO_MAX: _bindgen_ty_11 = _bindgen_ty_11::__IFLA_INFO_MAX;
++pub const IFLA_VLAN_UNSPEC: _bindgen_ty_12 = _bindgen_ty_12::IFLA_VLAN_UNSPEC;
++pub const IFLA_VLAN_ID: _bindgen_ty_12 = _bindgen_ty_12::IFLA_VLAN_ID;
++pub const IFLA_VLAN_FLAGS: _bindgen_ty_12 = _bindgen_ty_12::IFLA_VLAN_FLAGS;
++pub const IFLA_VLAN_EGRESS_QOS: _bindgen_ty_12 = _bindgen_ty_12::IFLA_VLAN_EGRESS_QOS;
++pub const IFLA_VLAN_INGRESS_QOS: _bindgen_ty_12 = _bindgen_ty_12::IFLA_VLAN_INGRESS_QOS;
++pub const IFLA_VLAN_PROTOCOL: _bindgen_ty_12 = _bindgen_ty_12::IFLA_VLAN_PROTOCOL;
++pub const __IFLA_VLAN_MAX: _bindgen_ty_12 = _bindgen_ty_12::__IFLA_VLAN_MAX;
++pub const IFLA_VLAN_QOS_UNSPEC: _bindgen_ty_13 = _bindgen_ty_13::IFLA_VLAN_QOS_UNSPEC;
++pub const IFLA_VLAN_QOS_MAPPING: _bindgen_ty_13 = _bindgen_ty_13::IFLA_VLAN_QOS_MAPPING;
++pub const __IFLA_VLAN_QOS_MAX: _bindgen_ty_13 = _bindgen_ty_13::__IFLA_VLAN_QOS_MAX;
++pub const IFLA_MACVLAN_UNSPEC: _bindgen_ty_14 = _bindgen_ty_14::IFLA_MACVLAN_UNSPEC;
++pub const IFLA_MACVLAN_MODE: _bindgen_ty_14 = _bindgen_ty_14::IFLA_MACVLAN_MODE;
++pub const IFLA_MACVLAN_FLAGS: _bindgen_ty_14 = _bindgen_ty_14::IFLA_MACVLAN_FLAGS;
++pub const IFLA_MACVLAN_MACADDR_MODE: _bindgen_ty_14 = _bindgen_ty_14::IFLA_MACVLAN_MACADDR_MODE;
++pub const IFLA_MACVLAN_MACADDR: _bindgen_ty_14 = _bindgen_ty_14::IFLA_MACVLAN_MACADDR;
++pub const IFLA_MACVLAN_MACADDR_DATA: _bindgen_ty_14 = _bindgen_ty_14::IFLA_MACVLAN_MACADDR_DATA;
++pub const IFLA_MACVLAN_MACADDR_COUNT: _bindgen_ty_14 = _bindgen_ty_14::IFLA_MACVLAN_MACADDR_COUNT;
++pub const IFLA_MACVLAN_BC_QUEUE_LEN: _bindgen_ty_14 = _bindgen_ty_14::IFLA_MACVLAN_BC_QUEUE_LEN;
++pub const IFLA_MACVLAN_BC_QUEUE_LEN_USED: _bindgen_ty_14 = _bindgen_ty_14::IFLA_MACVLAN_BC_QUEUE_LEN_USED;
++pub const __IFLA_MACVLAN_MAX: _bindgen_ty_14 = _bindgen_ty_14::__IFLA_MACVLAN_MAX;
++pub const IFLA_VRF_UNSPEC: _bindgen_ty_15 = _bindgen_ty_15::IFLA_VRF_UNSPEC;
++pub const IFLA_VRF_TABLE: _bindgen_ty_15 = _bindgen_ty_15::IFLA_VRF_TABLE;
++pub const __IFLA_VRF_MAX: _bindgen_ty_15 = _bindgen_ty_15::__IFLA_VRF_MAX;
++pub const IFLA_VRF_PORT_UNSPEC: _bindgen_ty_16 = _bindgen_ty_16::IFLA_VRF_PORT_UNSPEC;
++pub const IFLA_VRF_PORT_TABLE: _bindgen_ty_16 = _bindgen_ty_16::IFLA_VRF_PORT_TABLE;
++pub const __IFLA_VRF_PORT_MAX: _bindgen_ty_16 = _bindgen_ty_16::__IFLA_VRF_PORT_MAX;
++pub const IFLA_MACSEC_UNSPEC: _bindgen_ty_17 = _bindgen_ty_17::IFLA_MACSEC_UNSPEC;
++pub const IFLA_MACSEC_SCI: _bindgen_ty_17 = _bindgen_ty_17::IFLA_MACSEC_SCI;
++pub const IFLA_MACSEC_PORT: _bindgen_ty_17 = _bindgen_ty_17::IFLA_MACSEC_PORT;
++pub const IFLA_MACSEC_ICV_LEN: _bindgen_ty_17 = _bindgen_ty_17::IFLA_MACSEC_ICV_LEN;
++pub const IFLA_MACSEC_CIPHER_SUITE: _bindgen_ty_17 = _bindgen_ty_17::IFLA_MACSEC_CIPHER_SUITE;
++pub const IFLA_MACSEC_WINDOW: _bindgen_ty_17 = _bindgen_ty_17::IFLA_MACSEC_WINDOW;
++pub const IFLA_MACSEC_ENCODING_SA: _bindgen_ty_17 = _bindgen_ty_17::IFLA_MACSEC_ENCODING_SA;
++pub const IFLA_MACSEC_ENCRYPT: _bindgen_ty_17 = _bindgen_ty_17::IFLA_MACSEC_ENCRYPT;
++pub const IFLA_MACSEC_PROTECT: _bindgen_ty_17 = _bindgen_ty_17::IFLA_MACSEC_PROTECT;
++pub const IFLA_MACSEC_INC_SCI: _bindgen_ty_17 = _bindgen_ty_17::IFLA_MACSEC_INC_SCI;
++pub const IFLA_MACSEC_ES: _bindgen_ty_17 = _bindgen_ty_17::IFLA_MACSEC_ES;
++pub const IFLA_MACSEC_SCB: _bindgen_ty_17 = _bindgen_ty_17::IFLA_MACSEC_SCB;
++pub const IFLA_MACSEC_REPLAY_PROTECT: _bindgen_ty_17 = _bindgen_ty_17::IFLA_MACSEC_REPLAY_PROTECT;
++pub const IFLA_MACSEC_VALIDATION: _bindgen_ty_17 = _bindgen_ty_17::IFLA_MACSEC_VALIDATION;
++pub const IFLA_MACSEC_PAD: _bindgen_ty_17 = _bindgen_ty_17::IFLA_MACSEC_PAD;
++pub const IFLA_MACSEC_OFFLOAD: _bindgen_ty_17 = _bindgen_ty_17::IFLA_MACSEC_OFFLOAD;
++pub const __IFLA_MACSEC_MAX: _bindgen_ty_17 = _bindgen_ty_17::__IFLA_MACSEC_MAX;
++pub const IFLA_XFRM_UNSPEC: _bindgen_ty_18 = _bindgen_ty_18::IFLA_XFRM_UNSPEC;
++pub const IFLA_XFRM_LINK: _bindgen_ty_18 = _bindgen_ty_18::IFLA_XFRM_LINK;
++pub const IFLA_XFRM_IF_ID: _bindgen_ty_18 = _bindgen_ty_18::IFLA_XFRM_IF_ID;
++pub const IFLA_XFRM_COLLECT_METADATA: _bindgen_ty_18 = _bindgen_ty_18::IFLA_XFRM_COLLECT_METADATA;
++pub const __IFLA_XFRM_MAX: _bindgen_ty_18 = _bindgen_ty_18::__IFLA_XFRM_MAX;
++pub const IFLA_IPVLAN_UNSPEC: _bindgen_ty_19 = _bindgen_ty_19::IFLA_IPVLAN_UNSPEC;
++pub const IFLA_IPVLAN_MODE: _bindgen_ty_19 = _bindgen_ty_19::IFLA_IPVLAN_MODE;
++pub const IFLA_IPVLAN_FLAGS: _bindgen_ty_19 = _bindgen_ty_19::IFLA_IPVLAN_FLAGS;
++pub const __IFLA_IPVLAN_MAX: _bindgen_ty_19 = _bindgen_ty_19::__IFLA_IPVLAN_MAX;
++pub const VNIFILTER_ENTRY_STATS_UNSPEC: _bindgen_ty_20 = _bindgen_ty_20::VNIFILTER_ENTRY_STATS_UNSPEC;
++pub const VNIFILTER_ENTRY_STATS_RX_BYTES: _bindgen_ty_20 = _bindgen_ty_20::VNIFILTER_ENTRY_STATS_RX_BYTES;
++pub const VNIFILTER_ENTRY_STATS_RX_PKTS: _bindgen_ty_20 = _bindgen_ty_20::VNIFILTER_ENTRY_STATS_RX_PKTS;
++pub const VNIFILTER_ENTRY_STATS_RX_DROPS: _bindgen_ty_20 = _bindgen_ty_20::VNIFILTER_ENTRY_STATS_RX_DROPS;
++pub const VNIFILTER_ENTRY_STATS_RX_ERRORS: _bindgen_ty_20 = _bindgen_ty_20::VNIFILTER_ENTRY_STATS_RX_ERRORS;
++pub const VNIFILTER_ENTRY_STATS_TX_BYTES: _bindgen_ty_20 = _bindgen_ty_20::VNIFILTER_ENTRY_STATS_TX_BYTES;
++pub const VNIFILTER_ENTRY_STATS_TX_PKTS: _bindgen_ty_20 = _bindgen_ty_20::VNIFILTER_ENTRY_STATS_TX_PKTS;
++pub const VNIFILTER_ENTRY_STATS_TX_DROPS: _bindgen_ty_20 = _bindgen_ty_20::VNIFILTER_ENTRY_STATS_TX_DROPS;
++pub const VNIFILTER_ENTRY_STATS_TX_ERRORS: _bindgen_ty_20 = _bindgen_ty_20::VNIFILTER_ENTRY_STATS_TX_ERRORS;
++pub const VNIFILTER_ENTRY_STATS_PAD: _bindgen_ty_20 = _bindgen_ty_20::VNIFILTER_ENTRY_STATS_PAD;
++pub const __VNIFILTER_ENTRY_STATS_MAX: _bindgen_ty_20 = _bindgen_ty_20::__VNIFILTER_ENTRY_STATS_MAX;
++pub const VXLAN_VNIFILTER_ENTRY_UNSPEC: _bindgen_ty_21 = _bindgen_ty_21::VXLAN_VNIFILTER_ENTRY_UNSPEC;
++pub const VXLAN_VNIFILTER_ENTRY_START: _bindgen_ty_21 = _bindgen_ty_21::VXLAN_VNIFILTER_ENTRY_START;
++pub const VXLAN_VNIFILTER_ENTRY_END: _bindgen_ty_21 = _bindgen_ty_21::VXLAN_VNIFILTER_ENTRY_END;
++pub const VXLAN_VNIFILTER_ENTRY_GROUP: _bindgen_ty_21 = _bindgen_ty_21::VXLAN_VNIFILTER_ENTRY_GROUP;
++pub const VXLAN_VNIFILTER_ENTRY_GROUP6: _bindgen_ty_21 = _bindgen_ty_21::VXLAN_VNIFILTER_ENTRY_GROUP6;
++pub const VXLAN_VNIFILTER_ENTRY_STATS: _bindgen_ty_21 = _bindgen_ty_21::VXLAN_VNIFILTER_ENTRY_STATS;
++pub const __VXLAN_VNIFILTER_ENTRY_MAX: _bindgen_ty_21 = _bindgen_ty_21::__VXLAN_VNIFILTER_ENTRY_MAX;
++pub const VXLAN_VNIFILTER_UNSPEC: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_UNSPEC;
++pub const VXLAN_VNIFILTER_ENTRY: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY;
++pub const __VXLAN_VNIFILTER_MAX: _bindgen_ty_22 = _bindgen_ty_22::__VXLAN_VNIFILTER_MAX;
++pub const IFLA_VXLAN_UNSPEC: _bindgen_ty_23 = _bindgen_ty_23::IFLA_VXLAN_UNSPEC;
++pub const IFLA_VXLAN_ID: _bindgen_ty_23 = _bindgen_ty_23::IFLA_VXLAN_ID;
++pub const IFLA_VXLAN_GROUP: _bindgen_ty_23 = _bindgen_ty_23::IFLA_VXLAN_GROUP;
++pub const IFLA_VXLAN_LINK: _bindgen_ty_23 = _bindgen_ty_23::IFLA_VXLAN_LINK;
++pub const IFLA_VXLAN_LOCAL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_VXLAN_LOCAL;
++pub const IFLA_VXLAN_TTL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_VXLAN_TTL;
++pub const IFLA_VXLAN_TOS: _bindgen_ty_23 = _bindgen_ty_23::IFLA_VXLAN_TOS;
++pub const IFLA_VXLAN_LEARNING: _bindgen_ty_23 = _bindgen_ty_23::IFLA_VXLAN_LEARNING;
++pub const IFLA_VXLAN_AGEING: _bindgen_ty_23 = _bindgen_ty_23::IFLA_VXLAN_AGEING;
++pub const IFLA_VXLAN_LIMIT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_VXLAN_LIMIT;
++pub const IFLA_VXLAN_PORT_RANGE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_VXLAN_PORT_RANGE;
++pub const IFLA_VXLAN_PROXY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_VXLAN_PROXY;
++pub const IFLA_VXLAN_RSC: _bindgen_ty_23 = _bindgen_ty_23::IFLA_VXLAN_RSC;
++pub const IFLA_VXLAN_L2MISS: _bindgen_ty_23 = _bindgen_ty_23::IFLA_VXLAN_L2MISS;
++pub const IFLA_VXLAN_L3MISS: _bindgen_ty_23 = _bindgen_ty_23::IFLA_VXLAN_L3MISS;
++pub const IFLA_VXLAN_PORT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_VXLAN_PORT;
++pub const IFLA_VXLAN_GROUP6: _bindgen_ty_23 = _bindgen_ty_23::IFLA_VXLAN_GROUP6;
++pub const IFLA_VXLAN_LOCAL6: _bindgen_ty_23 = _bindgen_ty_23::IFLA_VXLAN_LOCAL6;
++pub const IFLA_VXLAN_UDP_CSUM: _bindgen_ty_23 = _bindgen_ty_23::IFLA_VXLAN_UDP_CSUM;
++pub const IFLA_VXLAN_UDP_ZERO_CSUM6_TX: _bindgen_ty_23 = _bindgen_ty_23::IFLA_VXLAN_UDP_ZERO_CSUM6_TX;
++pub const IFLA_VXLAN_UDP_ZERO_CSUM6_RX: _bindgen_ty_23 = _bindgen_ty_23::IFLA_VXLAN_UDP_ZERO_CSUM6_RX;
++pub const IFLA_VXLAN_REMCSUM_TX: _bindgen_ty_23 = _bindgen_ty_23::IFLA_VXLAN_REMCSUM_TX;
++pub const IFLA_VXLAN_REMCSUM_RX: _bindgen_ty_23 = _bindgen_ty_23::IFLA_VXLAN_REMCSUM_RX;
++pub const IFLA_VXLAN_GBP: _bindgen_ty_23 = _bindgen_ty_23::IFLA_VXLAN_GBP;
++pub const IFLA_VXLAN_REMCSUM_NOPARTIAL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_VXLAN_REMCSUM_NOPARTIAL;
++pub const IFLA_VXLAN_COLLECT_METADATA: _bindgen_ty_23 = _bindgen_ty_23::IFLA_VXLAN_COLLECT_METADATA;
++pub const IFLA_VXLAN_LABEL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_VXLAN_LABEL;
++pub const IFLA_VXLAN_GPE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_VXLAN_GPE;
++pub const IFLA_VXLAN_TTL_INHERIT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_VXLAN_TTL_INHERIT;
++pub const IFLA_VXLAN_DF: _bindgen_ty_23 = _bindgen_ty_23::IFLA_VXLAN_DF;
++pub const IFLA_VXLAN_VNIFILTER: _bindgen_ty_23 = _bindgen_ty_23::IFLA_VXLAN_VNIFILTER;
++pub const __IFLA_VXLAN_MAX: _bindgen_ty_23 = _bindgen_ty_23::__IFLA_VXLAN_MAX;
++pub const IFLA_GENEVE_UNSPEC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_GENEVE_UNSPEC;
++pub const IFLA_GENEVE_ID: _bindgen_ty_24 = _bindgen_ty_24::IFLA_GENEVE_ID;
++pub const IFLA_GENEVE_REMOTE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_GENEVE_REMOTE;
++pub const IFLA_GENEVE_TTL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_GENEVE_TTL;
++pub const IFLA_GENEVE_TOS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_GENEVE_TOS;
++pub const IFLA_GENEVE_PORT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_GENEVE_PORT;
++pub const IFLA_GENEVE_COLLECT_METADATA: _bindgen_ty_24 = _bindgen_ty_24::IFLA_GENEVE_COLLECT_METADATA;
++pub const IFLA_GENEVE_REMOTE6: _bindgen_ty_24 = _bindgen_ty_24::IFLA_GENEVE_REMOTE6;
++pub const IFLA_GENEVE_UDP_CSUM: _bindgen_ty_24 = _bindgen_ty_24::IFLA_GENEVE_UDP_CSUM;
++pub const IFLA_GENEVE_UDP_ZERO_CSUM6_TX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_GENEVE_UDP_ZERO_CSUM6_TX;
++pub const IFLA_GENEVE_UDP_ZERO_CSUM6_RX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_GENEVE_UDP_ZERO_CSUM6_RX;
++pub const IFLA_GENEVE_LABEL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_GENEVE_LABEL;
++pub const IFLA_GENEVE_TTL_INHERIT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_GENEVE_TTL_INHERIT;
++pub const IFLA_GENEVE_DF: _bindgen_ty_24 = _bindgen_ty_24::IFLA_GENEVE_DF;
++pub const IFLA_GENEVE_INNER_PROTO_INHERIT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_GENEVE_INNER_PROTO_INHERIT;
++pub const __IFLA_GENEVE_MAX: _bindgen_ty_24 = _bindgen_ty_24::__IFLA_GENEVE_MAX;
++pub const IFLA_BAREUDP_UNSPEC: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BAREUDP_UNSPEC;
++pub const IFLA_BAREUDP_PORT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BAREUDP_PORT;
++pub const IFLA_BAREUDP_ETHERTYPE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BAREUDP_ETHERTYPE;
++pub const IFLA_BAREUDP_SRCPORT_MIN: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BAREUDP_SRCPORT_MIN;
++pub const IFLA_BAREUDP_MULTIPROTO_MODE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BAREUDP_MULTIPROTO_MODE;
++pub const __IFLA_BAREUDP_MAX: _bindgen_ty_25 = _bindgen_ty_25::__IFLA_BAREUDP_MAX;
++pub const IFLA_PPP_UNSPEC: _bindgen_ty_26 = _bindgen_ty_26::IFLA_PPP_UNSPEC;
++pub const IFLA_PPP_DEV_FD: _bindgen_ty_26 = _bindgen_ty_26::IFLA_PPP_DEV_FD;
++pub const __IFLA_PPP_MAX: _bindgen_ty_26 = _bindgen_ty_26::__IFLA_PPP_MAX;
++pub const IFLA_GTP_UNSPEC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_GTP_UNSPEC;
++pub const IFLA_GTP_FD0: _bindgen_ty_27 = _bindgen_ty_27::IFLA_GTP_FD0;
++pub const IFLA_GTP_FD1: _bindgen_ty_27 = _bindgen_ty_27::IFLA_GTP_FD1;
++pub const IFLA_GTP_PDP_HASHSIZE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_GTP_PDP_HASHSIZE;
++pub const IFLA_GTP_ROLE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_GTP_ROLE;
++pub const IFLA_GTP_CREATE_SOCKETS: _bindgen_ty_27 = _bindgen_ty_27::IFLA_GTP_CREATE_SOCKETS;
++pub const IFLA_GTP_RESTART_COUNT: _bindgen_ty_27 = _bindgen_ty_27::IFLA_GTP_RESTART_COUNT;
++pub const __IFLA_GTP_MAX: _bindgen_ty_27 = _bindgen_ty_27::__IFLA_GTP_MAX;
++pub const IFLA_BOND_UNSPEC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_UNSPEC;
++pub const IFLA_BOND_MODE: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_MODE;
++pub const IFLA_BOND_ACTIVE_SLAVE: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_ACTIVE_SLAVE;
++pub const IFLA_BOND_MIIMON: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_MIIMON;
++pub const IFLA_BOND_UPDELAY: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_UPDELAY;
++pub const IFLA_BOND_DOWNDELAY: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_DOWNDELAY;
++pub const IFLA_BOND_USE_CARRIER: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_USE_CARRIER;
++pub const IFLA_BOND_ARP_INTERVAL: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_ARP_INTERVAL;
++pub const IFLA_BOND_ARP_IP_TARGET: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_ARP_IP_TARGET;
++pub const IFLA_BOND_ARP_VALIDATE: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_ARP_VALIDATE;
++pub const IFLA_BOND_ARP_ALL_TARGETS: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_ARP_ALL_TARGETS;
++pub const IFLA_BOND_PRIMARY: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_PRIMARY;
++pub const IFLA_BOND_PRIMARY_RESELECT: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_PRIMARY_RESELECT;
++pub const IFLA_BOND_FAIL_OVER_MAC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_FAIL_OVER_MAC;
++pub const IFLA_BOND_XMIT_HASH_POLICY: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_XMIT_HASH_POLICY;
++pub const IFLA_BOND_RESEND_IGMP: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_RESEND_IGMP;
++pub const IFLA_BOND_NUM_PEER_NOTIF: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_NUM_PEER_NOTIF;
++pub const IFLA_BOND_ALL_SLAVES_ACTIVE: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_ALL_SLAVES_ACTIVE;
++pub const IFLA_BOND_MIN_LINKS: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_MIN_LINKS;
++pub const IFLA_BOND_LP_INTERVAL: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_LP_INTERVAL;
++pub const IFLA_BOND_PACKETS_PER_SLAVE: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_PACKETS_PER_SLAVE;
++pub const IFLA_BOND_AD_LACP_RATE: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_LACP_RATE;
++pub const IFLA_BOND_AD_SELECT: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_SELECT;
++pub const IFLA_BOND_AD_INFO: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO;
++pub const IFLA_BOND_AD_ACTOR_SYS_PRIO: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_ACTOR_SYS_PRIO;
++pub const IFLA_BOND_AD_USER_PORT_KEY: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_USER_PORT_KEY;
++pub const IFLA_BOND_AD_ACTOR_SYSTEM: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_ACTOR_SYSTEM;
++pub const IFLA_BOND_TLB_DYNAMIC_LB: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_TLB_DYNAMIC_LB;
++pub const IFLA_BOND_PEER_NOTIF_DELAY: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_PEER_NOTIF_DELAY;
++pub const IFLA_BOND_AD_LACP_ACTIVE: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_LACP_ACTIVE;
++pub const IFLA_BOND_MISSED_MAX: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_MISSED_MAX;
++pub const IFLA_BOND_NS_IP6_TARGET: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_NS_IP6_TARGET;
++pub const __IFLA_BOND_MAX: _bindgen_ty_28 = _bindgen_ty_28::__IFLA_BOND_MAX;
++pub const IFLA_BOND_AD_INFO_UNSPEC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_INFO_UNSPEC;
++pub const IFLA_BOND_AD_INFO_AGGREGATOR: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_INFO_AGGREGATOR;
++pub const IFLA_BOND_AD_INFO_NUM_PORTS: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_INFO_NUM_PORTS;
++pub const IFLA_BOND_AD_INFO_ACTOR_KEY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_INFO_ACTOR_KEY;
++pub const IFLA_BOND_AD_INFO_PARTNER_KEY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_INFO_PARTNER_KEY;
++pub const IFLA_BOND_AD_INFO_PARTNER_MAC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_INFO_PARTNER_MAC;
++pub const __IFLA_BOND_AD_INFO_MAX: _bindgen_ty_29 = _bindgen_ty_29::__IFLA_BOND_AD_INFO_MAX;
++pub const IFLA_BOND_SLAVE_UNSPEC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_SLAVE_UNSPEC;
++pub const IFLA_BOND_SLAVE_STATE: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_SLAVE_STATE;
++pub const IFLA_BOND_SLAVE_MII_STATUS: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_SLAVE_MII_STATUS;
++pub const IFLA_BOND_SLAVE_LINK_FAILURE_COUNT: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_SLAVE_LINK_FAILURE_COUNT;
++pub const IFLA_BOND_SLAVE_PERM_HWADDR: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_SLAVE_PERM_HWADDR;
++pub const IFLA_BOND_SLAVE_QUEUE_ID: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_SLAVE_QUEUE_ID;
++pub const IFLA_BOND_SLAVE_AD_AGGREGATOR_ID: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_SLAVE_AD_AGGREGATOR_ID;
++pub const IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE;
++pub const IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE;
++pub const IFLA_BOND_SLAVE_PRIO: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_SLAVE_PRIO;
++pub const __IFLA_BOND_SLAVE_MAX: _bindgen_ty_30 = _bindgen_ty_30::__IFLA_BOND_SLAVE_MAX;
++pub const IFLA_VF_INFO_UNSPEC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_INFO_UNSPEC;
++pub const IFLA_VF_INFO: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_INFO;
++pub const __IFLA_VF_INFO_MAX: _bindgen_ty_31 = _bindgen_ty_31::__IFLA_VF_INFO_MAX;
++pub const IFLA_VF_UNSPEC: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_UNSPEC;
++pub const IFLA_VF_MAC: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_MAC;
++pub const IFLA_VF_VLAN: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_VLAN;
++pub const IFLA_VF_TX_RATE: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_TX_RATE;
++pub const IFLA_VF_SPOOFCHK: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_SPOOFCHK;
++pub const IFLA_VF_LINK_STATE: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_LINK_STATE;
++pub const IFLA_VF_RATE: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_RATE;
++pub const IFLA_VF_RSS_QUERY_EN: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_RSS_QUERY_EN;
++pub const IFLA_VF_STATS: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_STATS;
++pub const IFLA_VF_TRUST: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_TRUST;
++pub const IFLA_VF_IB_NODE_GUID: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_IB_NODE_GUID;
++pub const IFLA_VF_IB_PORT_GUID: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_IB_PORT_GUID;
++pub const IFLA_VF_VLAN_LIST: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_VLAN_LIST;
++pub const IFLA_VF_BROADCAST: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_BROADCAST;
++pub const __IFLA_VF_MAX: _bindgen_ty_32 = _bindgen_ty_32::__IFLA_VF_MAX;
++pub const IFLA_VF_VLAN_INFO_UNSPEC: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_VLAN_INFO_UNSPEC;
++pub const IFLA_VF_VLAN_INFO: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_VLAN_INFO;
++pub const __IFLA_VF_VLAN_INFO_MAX: _bindgen_ty_33 = _bindgen_ty_33::__IFLA_VF_VLAN_INFO_MAX;
++pub const IFLA_VF_LINK_STATE_AUTO: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_LINK_STATE_AUTO;
++pub const IFLA_VF_LINK_STATE_ENABLE: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_LINK_STATE_ENABLE;
++pub const IFLA_VF_LINK_STATE_DISABLE: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_LINK_STATE_DISABLE;
++pub const __IFLA_VF_LINK_STATE_MAX: _bindgen_ty_34 = _bindgen_ty_34::__IFLA_VF_LINK_STATE_MAX;
++pub const IFLA_VF_STATS_RX_PACKETS: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_STATS_RX_PACKETS;
++pub const IFLA_VF_STATS_TX_PACKETS: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_STATS_TX_PACKETS;
++pub const IFLA_VF_STATS_RX_BYTES: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_STATS_RX_BYTES;
++pub const IFLA_VF_STATS_TX_BYTES: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_STATS_TX_BYTES;
++pub const IFLA_VF_STATS_BROADCAST: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_STATS_BROADCAST;
++pub const IFLA_VF_STATS_MULTICAST: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_STATS_MULTICAST;
++pub const IFLA_VF_STATS_PAD: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_STATS_PAD;
++pub const IFLA_VF_STATS_RX_DROPPED: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_STATS_RX_DROPPED;
++pub const IFLA_VF_STATS_TX_DROPPED: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_STATS_TX_DROPPED;
++pub const __IFLA_VF_STATS_MAX: _bindgen_ty_35 = _bindgen_ty_35::__IFLA_VF_STATS_MAX;
++pub const IFLA_VF_PORT_UNSPEC: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_PORT_UNSPEC;
++pub const IFLA_VF_PORT: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_PORT;
++pub const __IFLA_VF_PORT_MAX: _bindgen_ty_36 = _bindgen_ty_36::__IFLA_VF_PORT_MAX;
++pub const IFLA_PORT_UNSPEC: _bindgen_ty_37 = _bindgen_ty_37::IFLA_PORT_UNSPEC;
++pub const IFLA_PORT_VF: _bindgen_ty_37 = _bindgen_ty_37::IFLA_PORT_VF;
++pub const IFLA_PORT_PROFILE: _bindgen_ty_37 = _bindgen_ty_37::IFLA_PORT_PROFILE;
++pub const IFLA_PORT_VSI_TYPE: _bindgen_ty_37 = _bindgen_ty_37::IFLA_PORT_VSI_TYPE;
++pub const IFLA_PORT_INSTANCE_UUID: _bindgen_ty_37 = _bindgen_ty_37::IFLA_PORT_INSTANCE_UUID;
++pub const IFLA_PORT_HOST_UUID: _bindgen_ty_37 = _bindgen_ty_37::IFLA_PORT_HOST_UUID;
++pub const IFLA_PORT_REQUEST: _bindgen_ty_37 = _bindgen_ty_37::IFLA_PORT_REQUEST;
++pub const IFLA_PORT_RESPONSE: _bindgen_ty_37 = _bindgen_ty_37::IFLA_PORT_RESPONSE;
++pub const __IFLA_PORT_MAX: _bindgen_ty_37 = _bindgen_ty_37::__IFLA_PORT_MAX;
++pub const PORT_REQUEST_PREASSOCIATE: _bindgen_ty_38 = _bindgen_ty_38::PORT_REQUEST_PREASSOCIATE;
++pub const PORT_REQUEST_PREASSOCIATE_RR: _bindgen_ty_38 = _bindgen_ty_38::PORT_REQUEST_PREASSOCIATE_RR;
++pub const PORT_REQUEST_ASSOCIATE: _bindgen_ty_38 = _bindgen_ty_38::PORT_REQUEST_ASSOCIATE;
++pub const PORT_REQUEST_DISASSOCIATE: _bindgen_ty_38 = _bindgen_ty_38::PORT_REQUEST_DISASSOCIATE;
++pub const PORT_VDP_RESPONSE_SUCCESS: _bindgen_ty_39 = _bindgen_ty_39::PORT_VDP_RESPONSE_SUCCESS;
++pub const PORT_VDP_RESPONSE_INVALID_FORMAT: _bindgen_ty_39 = _bindgen_ty_39::PORT_VDP_RESPONSE_INVALID_FORMAT;
++pub const PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_39 = _bindgen_ty_39::PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES;
++pub const PORT_VDP_RESPONSE_UNUSED_VTID: _bindgen_ty_39 = _bindgen_ty_39::PORT_VDP_RESPONSE_UNUSED_VTID;
++pub const PORT_VDP_RESPONSE_VTID_VIOLATION: _bindgen_ty_39 = _bindgen_ty_39::PORT_VDP_RESPONSE_VTID_VIOLATION;
++pub const PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION: _bindgen_ty_39 = _bindgen_ty_39::PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION;
++pub const PORT_VDP_RESPONSE_OUT_OF_SYNC: _bindgen_ty_39 = _bindgen_ty_39::PORT_VDP_RESPONSE_OUT_OF_SYNC;
++pub const PORT_PROFILE_RESPONSE_SUCCESS: _bindgen_ty_39 = _bindgen_ty_39::PORT_PROFILE_RESPONSE_SUCCESS;
++pub const PORT_PROFILE_RESPONSE_INPROGRESS: _bindgen_ty_39 = _bindgen_ty_39::PORT_PROFILE_RESPONSE_INPROGRESS;
++pub const PORT_PROFILE_RESPONSE_INVALID: _bindgen_ty_39 = _bindgen_ty_39::PORT_PROFILE_RESPONSE_INVALID;
++pub const PORT_PROFILE_RESPONSE_BADSTATE: _bindgen_ty_39 = _bindgen_ty_39::PORT_PROFILE_RESPONSE_BADSTATE;
++pub const PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_39 = _bindgen_ty_39::PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES;
++pub const PORT_PROFILE_RESPONSE_ERROR: _bindgen_ty_39 = _bindgen_ty_39::PORT_PROFILE_RESPONSE_ERROR;
++pub const IFLA_IPOIB_UNSPEC: _bindgen_ty_40 = _bindgen_ty_40::IFLA_IPOIB_UNSPEC;
++pub const IFLA_IPOIB_PKEY: _bindgen_ty_40 = _bindgen_ty_40::IFLA_IPOIB_PKEY;
++pub const IFLA_IPOIB_MODE: _bindgen_ty_40 = _bindgen_ty_40::IFLA_IPOIB_MODE;
++pub const IFLA_IPOIB_UMCAST: _bindgen_ty_40 = _bindgen_ty_40::IFLA_IPOIB_UMCAST;
++pub const __IFLA_IPOIB_MAX: _bindgen_ty_40 = _bindgen_ty_40::__IFLA_IPOIB_MAX;
++pub const IPOIB_MODE_DATAGRAM: _bindgen_ty_41 = _bindgen_ty_41::IPOIB_MODE_DATAGRAM;
++pub const IPOIB_MODE_CONNECTED: _bindgen_ty_41 = _bindgen_ty_41::IPOIB_MODE_CONNECTED;
++pub const HSR_PROTOCOL_HSR: _bindgen_ty_42 = _bindgen_ty_42::HSR_PROTOCOL_HSR;
++pub const HSR_PROTOCOL_PRP: _bindgen_ty_42 = _bindgen_ty_42::HSR_PROTOCOL_PRP;
++pub const HSR_PROTOCOL_MAX: _bindgen_ty_42 = _bindgen_ty_42::HSR_PROTOCOL_MAX;
++pub const IFLA_HSR_UNSPEC: _bindgen_ty_43 = _bindgen_ty_43::IFLA_HSR_UNSPEC;
++pub const IFLA_HSR_SLAVE1: _bindgen_ty_43 = _bindgen_ty_43::IFLA_HSR_SLAVE1;
++pub const IFLA_HSR_SLAVE2: _bindgen_ty_43 = _bindgen_ty_43::IFLA_HSR_SLAVE2;
++pub const IFLA_HSR_MULTICAST_SPEC: _bindgen_ty_43 = _bindgen_ty_43::IFLA_HSR_MULTICAST_SPEC;
++pub const IFLA_HSR_SUPERVISION_ADDR: _bindgen_ty_43 = _bindgen_ty_43::IFLA_HSR_SUPERVISION_ADDR;
++pub const IFLA_HSR_SEQ_NR: _bindgen_ty_43 = _bindgen_ty_43::IFLA_HSR_SEQ_NR;
++pub const IFLA_HSR_VERSION: _bindgen_ty_43 = _bindgen_ty_43::IFLA_HSR_VERSION;
++pub const IFLA_HSR_PROTOCOL: _bindgen_ty_43 = _bindgen_ty_43::IFLA_HSR_PROTOCOL;
++pub const __IFLA_HSR_MAX: _bindgen_ty_43 = _bindgen_ty_43::__IFLA_HSR_MAX;
++pub const IFLA_STATS_UNSPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_UNSPEC;
++pub const IFLA_STATS_LINK_64: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_LINK_64;
++pub const IFLA_STATS_LINK_XSTATS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_LINK_XSTATS;
++pub const IFLA_STATS_LINK_XSTATS_SLAVE: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_LINK_XSTATS_SLAVE;
++pub const IFLA_STATS_LINK_OFFLOAD_XSTATS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_LINK_OFFLOAD_XSTATS;
++pub const IFLA_STATS_AF_SPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_AF_SPEC;
++pub const __IFLA_STATS_MAX: _bindgen_ty_44 = _bindgen_ty_44::__IFLA_STATS_MAX;
++pub const IFLA_STATS_GETSET_UNSPEC: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_GETSET_UNSPEC;
++pub const IFLA_STATS_GET_FILTERS: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_GET_FILTERS;
++pub const IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS;
++pub const __IFLA_STATS_GETSET_MAX: _bindgen_ty_45 = _bindgen_ty_45::__IFLA_STATS_GETSET_MAX;
++pub const LINK_XSTATS_TYPE_UNSPEC: _bindgen_ty_46 = _bindgen_ty_46::LINK_XSTATS_TYPE_UNSPEC;
++pub const LINK_XSTATS_TYPE_BRIDGE: _bindgen_ty_46 = _bindgen_ty_46::LINK_XSTATS_TYPE_BRIDGE;
++pub const LINK_XSTATS_TYPE_BOND: _bindgen_ty_46 = _bindgen_ty_46::LINK_XSTATS_TYPE_BOND;
++pub const __LINK_XSTATS_TYPE_MAX: _bindgen_ty_46 = _bindgen_ty_46::__LINK_XSTATS_TYPE_MAX;
++pub const IFLA_OFFLOAD_XSTATS_UNSPEC: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_UNSPEC;
++pub const IFLA_OFFLOAD_XSTATS_CPU_HIT: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_CPU_HIT;
++pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_HW_S_INFO;
++pub const IFLA_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_L3_STATS;
++pub const __IFLA_OFFLOAD_XSTATS_MAX: _bindgen_ty_47 = _bindgen_ty_47::__IFLA_OFFLOAD_XSTATS_MAX;
++pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC;
++pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST;
++pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED;
++pub const __IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX: _bindgen_ty_48 = _bindgen_ty_48::__IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX;
++pub const XDP_ATTACHED_NONE: _bindgen_ty_49 = _bindgen_ty_49::XDP_ATTACHED_NONE;
++pub const XDP_ATTACHED_DRV: _bindgen_ty_49 = _bindgen_ty_49::XDP_ATTACHED_DRV;
++pub const XDP_ATTACHED_SKB: _bindgen_ty_49 = _bindgen_ty_49::XDP_ATTACHED_SKB;
++pub const XDP_ATTACHED_HW: _bindgen_ty_49 = _bindgen_ty_49::XDP_ATTACHED_HW;
++pub const XDP_ATTACHED_MULTI: _bindgen_ty_49 = _bindgen_ty_49::XDP_ATTACHED_MULTI;
++pub const IFLA_XDP_UNSPEC: _bindgen_ty_50 = _bindgen_ty_50::IFLA_XDP_UNSPEC;
++pub const IFLA_XDP_FD: _bindgen_ty_50 = _bindgen_ty_50::IFLA_XDP_FD;
++pub const IFLA_XDP_ATTACHED: _bindgen_ty_50 = _bindgen_ty_50::IFLA_XDP_ATTACHED;
++pub const IFLA_XDP_FLAGS: _bindgen_ty_50 = _bindgen_ty_50::IFLA_XDP_FLAGS;
++pub const IFLA_XDP_PROG_ID: _bindgen_ty_50 = _bindgen_ty_50::IFLA_XDP_PROG_ID;
++pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_50 = _bindgen_ty_50::IFLA_XDP_DRV_PROG_ID;
++pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_50 = _bindgen_ty_50::IFLA_XDP_SKB_PROG_ID;
++pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_50 = _bindgen_ty_50::IFLA_XDP_HW_PROG_ID;
++pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_50 = _bindgen_ty_50::IFLA_XDP_EXPECTED_FD;
++pub const __IFLA_XDP_MAX: _bindgen_ty_50 = _bindgen_ty_50::__IFLA_XDP_MAX;
++pub const IFLA_EVENT_NONE: _bindgen_ty_51 = _bindgen_ty_51::IFLA_EVENT_NONE;
++pub const IFLA_EVENT_REBOOT: _bindgen_ty_51 = _bindgen_ty_51::IFLA_EVENT_REBOOT;
++pub const IFLA_EVENT_FEATURES: _bindgen_ty_51 = _bindgen_ty_51::IFLA_EVENT_FEATURES;
++pub const IFLA_EVENT_BONDING_FAILOVER: _bindgen_ty_51 = _bindgen_ty_51::IFLA_EVENT_BONDING_FAILOVER;
++pub const IFLA_EVENT_NOTIFY_PEERS: _bindgen_ty_51 = _bindgen_ty_51::IFLA_EVENT_NOTIFY_PEERS;
++pub const IFLA_EVENT_IGMP_RESEND: _bindgen_ty_51 = _bindgen_ty_51::IFLA_EVENT_IGMP_RESEND;
++pub const IFLA_EVENT_BONDING_OPTIONS: _bindgen_ty_51 = _bindgen_ty_51::IFLA_EVENT_BONDING_OPTIONS;
++pub const IFLA_TUN_UNSPEC: _bindgen_ty_52 = _bindgen_ty_52::IFLA_TUN_UNSPEC;
++pub const IFLA_TUN_OWNER: _bindgen_ty_52 = _bindgen_ty_52::IFLA_TUN_OWNER;
++pub const IFLA_TUN_GROUP: _bindgen_ty_52 = _bindgen_ty_52::IFLA_TUN_GROUP;
++pub const IFLA_TUN_TYPE: _bindgen_ty_52 = _bindgen_ty_52::IFLA_TUN_TYPE;
++pub const IFLA_TUN_PI: _bindgen_ty_52 = _bindgen_ty_52::IFLA_TUN_PI;
++pub const IFLA_TUN_VNET_HDR: _bindgen_ty_52 = _bindgen_ty_52::IFLA_TUN_VNET_HDR;
++pub const IFLA_TUN_PERSIST: _bindgen_ty_52 = _bindgen_ty_52::IFLA_TUN_PERSIST;
++pub const IFLA_TUN_MULTI_QUEUE: _bindgen_ty_52 = _bindgen_ty_52::IFLA_TUN_MULTI_QUEUE;
++pub const IFLA_TUN_NUM_QUEUES: _bindgen_ty_52 = _bindgen_ty_52::IFLA_TUN_NUM_QUEUES;
++pub const IFLA_TUN_NUM_DISABLED_QUEUES: _bindgen_ty_52 = _bindgen_ty_52::IFLA_TUN_NUM_DISABLED_QUEUES;
++pub const __IFLA_TUN_MAX: _bindgen_ty_52 = _bindgen_ty_52::__IFLA_TUN_MAX;
++pub const IFLA_RMNET_UNSPEC: _bindgen_ty_53 = _bindgen_ty_53::IFLA_RMNET_UNSPEC;
++pub const IFLA_RMNET_MUX_ID: _bindgen_ty_53 = _bindgen_ty_53::IFLA_RMNET_MUX_ID;
++pub const IFLA_RMNET_FLAGS: _bindgen_ty_53 = _bindgen_ty_53::IFLA_RMNET_FLAGS;
++pub const __IFLA_RMNET_MAX: _bindgen_ty_53 = _bindgen_ty_53::__IFLA_RMNET_MAX;
++pub const IFLA_MCTP_UNSPEC: _bindgen_ty_54 = _bindgen_ty_54::IFLA_MCTP_UNSPEC;
++pub const IFLA_MCTP_NET: _bindgen_ty_54 = _bindgen_ty_54::IFLA_MCTP_NET;
++pub const __IFLA_MCTP_MAX: _bindgen_ty_54 = _bindgen_ty_54::__IFLA_MCTP_MAX;
++pub const IFLA_DSA_UNSPEC: _bindgen_ty_55 = _bindgen_ty_55::IFLA_DSA_UNSPEC;
++pub const IFLA_DSA_MASTER: _bindgen_ty_55 = _bindgen_ty_55::IFLA_DSA_MASTER;
++pub const __IFLA_DSA_MAX: _bindgen_ty_55 = _bindgen_ty_55::__IFLA_DSA_MAX;
++pub const IF_PORT_UNKNOWN: _bindgen_ty_56 = _bindgen_ty_56::IF_PORT_UNKNOWN;
++pub const IF_PORT_10BASE2: _bindgen_ty_56 = _bindgen_ty_56::IF_PORT_10BASE2;
++pub const IF_PORT_10BASET: _bindgen_ty_56 = _bindgen_ty_56::IF_PORT_10BASET;
++pub const IF_PORT_AUI: _bindgen_ty_56 = _bindgen_ty_56::IF_PORT_AUI;
++pub const IF_PORT_100BASET: _bindgen_ty_56 = _bindgen_ty_56::IF_PORT_100BASET;
++pub const IF_PORT_100BASETX: _bindgen_ty_56 = _bindgen_ty_56::IF_PORT_100BASETX;
++pub const IF_PORT_100BASEFX: _bindgen_ty_56 = _bindgen_ty_56::IF_PORT_100BASEFX;
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum net_device_flags {
++IFF_UP = 1,
++IFF_BROADCAST = 2,
++IFF_DEBUG = 4,
++IFF_LOOPBACK = 8,
++IFF_POINTOPOINT = 16,
++IFF_NOTRAILERS = 32,
++IFF_RUNNING = 64,
++IFF_NOARP = 128,
++IFF_PROMISC = 256,
++IFF_ALLMULTI = 512,
++IFF_MASTER = 1024,
++IFF_SLAVE = 2048,
++IFF_MULTICAST = 4096,
++IFF_PORTSEL = 8192,
++IFF_AUTOMEDIA = 16384,
++IFF_DYNAMIC = 32768,
++IFF_LOWER_UP = 65536,
++IFF_DORMANT = 131072,
++IFF_ECHO = 262144,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_1 {
++IF_OPER_UNKNOWN = 0,
++IF_OPER_NOTPRESENT = 1,
++IF_OPER_DOWN = 2,
++IF_OPER_LOWERLAYERDOWN = 3,
++IF_OPER_TESTING = 4,
++IF_OPER_DORMANT = 5,
++IF_OPER_UP = 6,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_2 {
++IF_LINK_MODE_DEFAULT = 0,
++IF_LINK_MODE_DORMANT = 1,
++IF_LINK_MODE_TESTING = 2,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum tpacket_versions {
++TPACKET_V1 = 0,
++TPACKET_V2 = 1,
++TPACKET_V3 = 2,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum nlmsgerr_attrs {
++NLMSGERR_ATTR_UNUSED = 0,
++NLMSGERR_ATTR_MSG = 1,
++NLMSGERR_ATTR_OFFS = 2,
++NLMSGERR_ATTR_COOKIE = 3,
++NLMSGERR_ATTR_POLICY = 4,
++NLMSGERR_ATTR_MISS_TYPE = 5,
++NLMSGERR_ATTR_MISS_NEST = 6,
++__NLMSGERR_ATTR_MAX = 7,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum nl_mmap_status {
++NL_MMAP_STATUS_UNUSED = 0,
++NL_MMAP_STATUS_RESERVED = 1,
++NL_MMAP_STATUS_VALID = 2,
++NL_MMAP_STATUS_COPY = 3,
++NL_MMAP_STATUS_SKIP = 4,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_3 {
++NETLINK_UNCONNECTED = 0,
++NETLINK_CONNECTED = 1,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum netlink_attribute_type {
++NL_ATTR_TYPE_INVALID = 0,
++NL_ATTR_TYPE_FLAG = 1,
++NL_ATTR_TYPE_U8 = 2,
++NL_ATTR_TYPE_U16 = 3,
++NL_ATTR_TYPE_U32 = 4,
++NL_ATTR_TYPE_U64 = 5,
++NL_ATTR_TYPE_S8 = 6,
++NL_ATTR_TYPE_S16 = 7,
++NL_ATTR_TYPE_S32 = 8,
++NL_ATTR_TYPE_S64 = 9,
++NL_ATTR_TYPE_BINARY = 10,
++NL_ATTR_TYPE_STRING = 11,
++NL_ATTR_TYPE_NUL_STRING = 12,
++NL_ATTR_TYPE_NESTED = 13,
++NL_ATTR_TYPE_NESTED_ARRAY = 14,
++NL_ATTR_TYPE_BITFIELD32 = 15,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum netlink_policy_type_attr {
++NL_POLICY_TYPE_ATTR_UNSPEC = 0,
++NL_POLICY_TYPE_ATTR_TYPE = 1,
++NL_POLICY_TYPE_ATTR_MIN_VALUE_S = 2,
++NL_POLICY_TYPE_ATTR_MAX_VALUE_S = 3,
++NL_POLICY_TYPE_ATTR_MIN_VALUE_U = 4,
++NL_POLICY_TYPE_ATTR_MAX_VALUE_U = 5,
++NL_POLICY_TYPE_ATTR_MIN_LENGTH = 6,
++NL_POLICY_TYPE_ATTR_MAX_LENGTH = 7,
++NL_POLICY_TYPE_ATTR_POLICY_IDX = 8,
++NL_POLICY_TYPE_ATTR_POLICY_MAXTYPE = 9,
++NL_POLICY_TYPE_ATTR_BITFIELD32_MASK = 10,
++NL_POLICY_TYPE_ATTR_PAD = 11,
++NL_POLICY_TYPE_ATTR_MASK = 12,
++__NL_POLICY_TYPE_ATTR_MAX = 13,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_4 {
++IFLA_UNSPEC = 0,
++IFLA_ADDRESS = 1,
++IFLA_BROADCAST = 2,
++IFLA_IFNAME = 3,
++IFLA_MTU = 4,
++IFLA_LINK = 5,
++IFLA_QDISC = 6,
++IFLA_STATS = 7,
++IFLA_COST = 8,
++IFLA_PRIORITY = 9,
++IFLA_MASTER = 10,
++IFLA_WIRELESS = 11,
++IFLA_PROTINFO = 12,
++IFLA_TXQLEN = 13,
++IFLA_MAP = 14,
++IFLA_WEIGHT = 15,
++IFLA_OPERSTATE = 16,
++IFLA_LINKMODE = 17,
++IFLA_LINKINFO = 18,
++IFLA_NET_NS_PID = 19,
++IFLA_IFALIAS = 20,
++IFLA_NUM_VF = 21,
++IFLA_VFINFO_LIST = 22,
++IFLA_STATS64 = 23,
++IFLA_VF_PORTS = 24,
++IFLA_PORT_SELF = 25,
++IFLA_AF_SPEC = 26,
++IFLA_GROUP = 27,
++IFLA_NET_NS_FD = 28,
++IFLA_EXT_MASK = 29,
++IFLA_PROMISCUITY = 30,
++IFLA_NUM_TX_QUEUES = 31,
++IFLA_NUM_RX_QUEUES = 32,
++IFLA_CARRIER = 33,
++IFLA_PHYS_PORT_ID = 34,
++IFLA_CARRIER_CHANGES = 35,
++IFLA_PHYS_SWITCH_ID = 36,
++IFLA_LINK_NETNSID = 37,
++IFLA_PHYS_PORT_NAME = 38,
++IFLA_PROTO_DOWN = 39,
++IFLA_GSO_MAX_SEGS = 40,
++IFLA_GSO_MAX_SIZE = 41,
++IFLA_PAD = 42,
++IFLA_XDP = 43,
++IFLA_EVENT = 44,
++IFLA_NEW_NETNSID = 45,
++IFLA_IF_NETNSID = 46,
++IFLA_CARRIER_UP_COUNT = 47,
++IFLA_CARRIER_DOWN_COUNT = 48,
++IFLA_NEW_IFINDEX = 49,
++IFLA_MIN_MTU = 50,
++IFLA_MAX_MTU = 51,
++IFLA_PROP_LIST = 52,
++IFLA_ALT_IFNAME = 53,
++IFLA_PERM_ADDRESS = 54,
++IFLA_PROTO_DOWN_REASON = 55,
++IFLA_PARENT_DEV_NAME = 56,
++IFLA_PARENT_DEV_BUS_NAME = 57,
++IFLA_GRO_MAX_SIZE = 58,
++IFLA_TSO_MAX_SIZE = 59,
++IFLA_TSO_MAX_SEGS = 60,
++IFLA_ALLMULTI = 61,
++IFLA_DEVLINK_PORT = 62,
++IFLA_GSO_IPV4_MAX_SIZE = 63,
++IFLA_GRO_IPV4_MAX_SIZE = 64,
++__IFLA_MAX = 65,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_5 {
++IFLA_PROTO_DOWN_REASON_UNSPEC = 0,
++IFLA_PROTO_DOWN_REASON_MASK = 1,
++IFLA_PROTO_DOWN_REASON_VALUE = 2,
++__IFLA_PROTO_DOWN_REASON_CNT = 3,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_6 {
++IFLA_INET_UNSPEC = 0,
++IFLA_INET_CONF = 1,
++__IFLA_INET_MAX = 2,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_7 {
++IFLA_INET6_UNSPEC = 0,
++IFLA_INET6_FLAGS = 1,
++IFLA_INET6_CONF = 2,
++IFLA_INET6_STATS = 3,
++IFLA_INET6_MCAST = 4,
++IFLA_INET6_CACHEINFO = 5,
++IFLA_INET6_ICMP6STATS = 6,
++IFLA_INET6_TOKEN = 7,
++IFLA_INET6_ADDR_GEN_MODE = 8,
++IFLA_INET6_RA_MTU = 9,
++__IFLA_INET6_MAX = 10,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum in6_addr_gen_mode {
++IN6_ADDR_GEN_MODE_EUI64 = 0,
++IN6_ADDR_GEN_MODE_NONE = 1,
++IN6_ADDR_GEN_MODE_STABLE_PRIVACY = 2,
++IN6_ADDR_GEN_MODE_RANDOM = 3,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_8 {
++IFLA_BR_UNSPEC = 0,
++IFLA_BR_FORWARD_DELAY = 1,
++IFLA_BR_HELLO_TIME = 2,
++IFLA_BR_MAX_AGE = 3,
++IFLA_BR_AGEING_TIME = 4,
++IFLA_BR_STP_STATE = 5,
++IFLA_BR_PRIORITY = 6,
++IFLA_BR_VLAN_FILTERING = 7,
++IFLA_BR_VLAN_PROTOCOL = 8,
++IFLA_BR_GROUP_FWD_MASK = 9,
++IFLA_BR_ROOT_ID = 10,
++IFLA_BR_BRIDGE_ID = 11,
++IFLA_BR_ROOT_PORT = 12,
++IFLA_BR_ROOT_PATH_COST = 13,
++IFLA_BR_TOPOLOGY_CHANGE = 14,
++IFLA_BR_TOPOLOGY_CHANGE_DETECTED = 15,
++IFLA_BR_HELLO_TIMER = 16,
++IFLA_BR_TCN_TIMER = 17,
++IFLA_BR_TOPOLOGY_CHANGE_TIMER = 18,
++IFLA_BR_GC_TIMER = 19,
++IFLA_BR_GROUP_ADDR = 20,
++IFLA_BR_FDB_FLUSH = 21,
++IFLA_BR_MCAST_ROUTER = 22,
++IFLA_BR_MCAST_SNOOPING = 23,
++IFLA_BR_MCAST_QUERY_USE_IFADDR = 24,
++IFLA_BR_MCAST_QUERIER = 25,
++IFLA_BR_MCAST_HASH_ELASTICITY = 26,
++IFLA_BR_MCAST_HASH_MAX = 27,
++IFLA_BR_MCAST_LAST_MEMBER_CNT = 28,
++IFLA_BR_MCAST_STARTUP_QUERY_CNT = 29,
++IFLA_BR_MCAST_LAST_MEMBER_INTVL = 30,
++IFLA_BR_MCAST_MEMBERSHIP_INTVL = 31,
++IFLA_BR_MCAST_QUERIER_INTVL = 32,
++IFLA_BR_MCAST_QUERY_INTVL = 33,
++IFLA_BR_MCAST_QUERY_RESPONSE_INTVL = 34,
++IFLA_BR_MCAST_STARTUP_QUERY_INTVL = 35,
++IFLA_BR_NF_CALL_IPTABLES = 36,
++IFLA_BR_NF_CALL_IP6TABLES = 37,
++IFLA_BR_NF_CALL_ARPTABLES = 38,
++IFLA_BR_VLAN_DEFAULT_PVID = 39,
++IFLA_BR_PAD = 40,
++IFLA_BR_VLAN_STATS_ENABLED = 41,
++IFLA_BR_MCAST_STATS_ENABLED = 42,
++IFLA_BR_MCAST_IGMP_VERSION = 43,
++IFLA_BR_MCAST_MLD_VERSION = 44,
++IFLA_BR_VLAN_STATS_PER_PORT = 45,
++IFLA_BR_MULTI_BOOLOPT = 46,
++IFLA_BR_MCAST_QUERIER_STATE = 47,
++__IFLA_BR_MAX = 48,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_9 {
++BRIDGE_MODE_UNSPEC = 0,
++BRIDGE_MODE_HAIRPIN = 1,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_10 {
++IFLA_BRPORT_UNSPEC = 0,
++IFLA_BRPORT_STATE = 1,
++IFLA_BRPORT_PRIORITY = 2,
++IFLA_BRPORT_COST = 3,
++IFLA_BRPORT_MODE = 4,
++IFLA_BRPORT_GUARD = 5,
++IFLA_BRPORT_PROTECT = 6,
++IFLA_BRPORT_FAST_LEAVE = 7,
++IFLA_BRPORT_LEARNING = 8,
++IFLA_BRPORT_UNICAST_FLOOD = 9,
++IFLA_BRPORT_PROXYARP = 10,
++IFLA_BRPORT_LEARNING_SYNC = 11,
++IFLA_BRPORT_PROXYARP_WIFI = 12,
++IFLA_BRPORT_ROOT_ID = 13,
++IFLA_BRPORT_BRIDGE_ID = 14,
++IFLA_BRPORT_DESIGNATED_PORT = 15,
++IFLA_BRPORT_DESIGNATED_COST = 16,
++IFLA_BRPORT_ID = 17,
++IFLA_BRPORT_NO = 18,
++IFLA_BRPORT_TOPOLOGY_CHANGE_ACK = 19,
++IFLA_BRPORT_CONFIG_PENDING = 20,
++IFLA_BRPORT_MESSAGE_AGE_TIMER = 21,
++IFLA_BRPORT_FORWARD_DELAY_TIMER = 22,
++IFLA_BRPORT_HOLD_TIMER = 23,
++IFLA_BRPORT_FLUSH = 24,
++IFLA_BRPORT_MULTICAST_ROUTER = 25,
++IFLA_BRPORT_PAD = 26,
++IFLA_BRPORT_MCAST_FLOOD = 27,
++IFLA_BRPORT_MCAST_TO_UCAST = 28,
++IFLA_BRPORT_VLAN_TUNNEL = 29,
++IFLA_BRPORT_BCAST_FLOOD = 30,
++IFLA_BRPORT_GROUP_FWD_MASK = 31,
++IFLA_BRPORT_NEIGH_SUPPRESS = 32,
++IFLA_BRPORT_ISOLATED = 33,
++IFLA_BRPORT_BACKUP_PORT = 34,
++IFLA_BRPORT_MRP_RING_OPEN = 35,
++IFLA_BRPORT_MRP_IN_OPEN = 36,
++IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT = 37,
++IFLA_BRPORT_MCAST_EHT_HOSTS_CNT = 38,
++IFLA_BRPORT_LOCKED = 39,
++IFLA_BRPORT_MAB = 40,
++IFLA_BRPORT_MCAST_N_GROUPS = 41,
++IFLA_BRPORT_MCAST_MAX_GROUPS = 42,
++__IFLA_BRPORT_MAX = 43,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_11 {
++IFLA_INFO_UNSPEC = 0,
++IFLA_INFO_KIND = 1,
++IFLA_INFO_DATA = 2,
++IFLA_INFO_XSTATS = 3,
++IFLA_INFO_SLAVE_KIND = 4,
++IFLA_INFO_SLAVE_DATA = 5,
++__IFLA_INFO_MAX = 6,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_12 {
++IFLA_VLAN_UNSPEC = 0,
++IFLA_VLAN_ID = 1,
++IFLA_VLAN_FLAGS = 2,
++IFLA_VLAN_EGRESS_QOS = 3,
++IFLA_VLAN_INGRESS_QOS = 4,
++IFLA_VLAN_PROTOCOL = 5,
++__IFLA_VLAN_MAX = 6,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_13 {
++IFLA_VLAN_QOS_UNSPEC = 0,
++IFLA_VLAN_QOS_MAPPING = 1,
++__IFLA_VLAN_QOS_MAX = 2,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_14 {
++IFLA_MACVLAN_UNSPEC = 0,
++IFLA_MACVLAN_MODE = 1,
++IFLA_MACVLAN_FLAGS = 2,
++IFLA_MACVLAN_MACADDR_MODE = 3,
++IFLA_MACVLAN_MACADDR = 4,
++IFLA_MACVLAN_MACADDR_DATA = 5,
++IFLA_MACVLAN_MACADDR_COUNT = 6,
++IFLA_MACVLAN_BC_QUEUE_LEN = 7,
++IFLA_MACVLAN_BC_QUEUE_LEN_USED = 8,
++__IFLA_MACVLAN_MAX = 9,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum macvlan_mode {
++MACVLAN_MODE_PRIVATE = 1,
++MACVLAN_MODE_VEPA = 2,
++MACVLAN_MODE_BRIDGE = 4,
++MACVLAN_MODE_PASSTHRU = 8,
++MACVLAN_MODE_SOURCE = 16,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum macvlan_macaddr_mode {
++MACVLAN_MACADDR_ADD = 0,
++MACVLAN_MACADDR_DEL = 1,
++MACVLAN_MACADDR_FLUSH = 2,
++MACVLAN_MACADDR_SET = 3,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_15 {
++IFLA_VRF_UNSPEC = 0,
++IFLA_VRF_TABLE = 1,
++__IFLA_VRF_MAX = 2,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_16 {
++IFLA_VRF_PORT_UNSPEC = 0,
++IFLA_VRF_PORT_TABLE = 1,
++__IFLA_VRF_PORT_MAX = 2,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_17 {
++IFLA_MACSEC_UNSPEC = 0,
++IFLA_MACSEC_SCI = 1,
++IFLA_MACSEC_PORT = 2,
++IFLA_MACSEC_ICV_LEN = 3,
++IFLA_MACSEC_CIPHER_SUITE = 4,
++IFLA_MACSEC_WINDOW = 5,
++IFLA_MACSEC_ENCODING_SA = 6,
++IFLA_MACSEC_ENCRYPT = 7,
++IFLA_MACSEC_PROTECT = 8,
++IFLA_MACSEC_INC_SCI = 9,
++IFLA_MACSEC_ES = 10,
++IFLA_MACSEC_SCB = 11,
++IFLA_MACSEC_REPLAY_PROTECT = 12,
++IFLA_MACSEC_VALIDATION = 13,
++IFLA_MACSEC_PAD = 14,
++IFLA_MACSEC_OFFLOAD = 15,
++__IFLA_MACSEC_MAX = 16,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_18 {
++IFLA_XFRM_UNSPEC = 0,
++IFLA_XFRM_LINK = 1,
++IFLA_XFRM_IF_ID = 2,
++IFLA_XFRM_COLLECT_METADATA = 3,
++__IFLA_XFRM_MAX = 4,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum macsec_validation_type {
++MACSEC_VALIDATE_DISABLED = 0,
++MACSEC_VALIDATE_CHECK = 1,
++MACSEC_VALIDATE_STRICT = 2,
++__MACSEC_VALIDATE_END = 3,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum macsec_offload {
++MACSEC_OFFLOAD_OFF = 0,
++MACSEC_OFFLOAD_PHY = 1,
++MACSEC_OFFLOAD_MAC = 2,
++__MACSEC_OFFLOAD_END = 3,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_19 {
++IFLA_IPVLAN_UNSPEC = 0,
++IFLA_IPVLAN_MODE = 1,
++IFLA_IPVLAN_FLAGS = 2,
++__IFLA_IPVLAN_MAX = 3,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum ipvlan_mode {
++IPVLAN_MODE_L2 = 0,
++IPVLAN_MODE_L3 = 1,
++IPVLAN_MODE_L3S = 2,
++IPVLAN_MODE_MAX = 3,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_20 {
++VNIFILTER_ENTRY_STATS_UNSPEC = 0,
++VNIFILTER_ENTRY_STATS_RX_BYTES = 1,
++VNIFILTER_ENTRY_STATS_RX_PKTS = 2,
++VNIFILTER_ENTRY_STATS_RX_DROPS = 3,
++VNIFILTER_ENTRY_STATS_RX_ERRORS = 4,
++VNIFILTER_ENTRY_STATS_TX_BYTES = 5,
++VNIFILTER_ENTRY_STATS_TX_PKTS = 6,
++VNIFILTER_ENTRY_STATS_TX_DROPS = 7,
++VNIFILTER_ENTRY_STATS_TX_ERRORS = 8,
++VNIFILTER_ENTRY_STATS_PAD = 9,
++__VNIFILTER_ENTRY_STATS_MAX = 10,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_21 {
++VXLAN_VNIFILTER_ENTRY_UNSPEC = 0,
++VXLAN_VNIFILTER_ENTRY_START = 1,
++VXLAN_VNIFILTER_ENTRY_END = 2,
++VXLAN_VNIFILTER_ENTRY_GROUP = 3,
++VXLAN_VNIFILTER_ENTRY_GROUP6 = 4,
++VXLAN_VNIFILTER_ENTRY_STATS = 5,
++__VXLAN_VNIFILTER_ENTRY_MAX = 6,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_22 {
++VXLAN_VNIFILTER_UNSPEC = 0,
++VXLAN_VNIFILTER_ENTRY = 1,
++__VXLAN_VNIFILTER_MAX = 2,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_23 {
++IFLA_VXLAN_UNSPEC = 0,
++IFLA_VXLAN_ID = 1,
++IFLA_VXLAN_GROUP = 2,
++IFLA_VXLAN_LINK = 3,
++IFLA_VXLAN_LOCAL = 4,
++IFLA_VXLAN_TTL = 5,
++IFLA_VXLAN_TOS = 6,
++IFLA_VXLAN_LEARNING = 7,
++IFLA_VXLAN_AGEING = 8,
++IFLA_VXLAN_LIMIT = 9,
++IFLA_VXLAN_PORT_RANGE = 10,
++IFLA_VXLAN_PROXY = 11,
++IFLA_VXLAN_RSC = 12,
++IFLA_VXLAN_L2MISS = 13,
++IFLA_VXLAN_L3MISS = 14,
++IFLA_VXLAN_PORT = 15,
++IFLA_VXLAN_GROUP6 = 16,
++IFLA_VXLAN_LOCAL6 = 17,
++IFLA_VXLAN_UDP_CSUM = 18,
++IFLA_VXLAN_UDP_ZERO_CSUM6_TX = 19,
++IFLA_VXLAN_UDP_ZERO_CSUM6_RX = 20,
++IFLA_VXLAN_REMCSUM_TX = 21,
++IFLA_VXLAN_REMCSUM_RX = 22,
++IFLA_VXLAN_GBP = 23,
++IFLA_VXLAN_REMCSUM_NOPARTIAL = 24,
++IFLA_VXLAN_COLLECT_METADATA = 25,
++IFLA_VXLAN_LABEL = 26,
++IFLA_VXLAN_GPE = 27,
++IFLA_VXLAN_TTL_INHERIT = 28,
++IFLA_VXLAN_DF = 29,
++IFLA_VXLAN_VNIFILTER = 30,
++__IFLA_VXLAN_MAX = 31,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum ifla_vxlan_df {
++VXLAN_DF_UNSET = 0,
++VXLAN_DF_SET = 1,
++VXLAN_DF_INHERIT = 2,
++__VXLAN_DF_END = 3,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_24 {
++IFLA_GENEVE_UNSPEC = 0,
++IFLA_GENEVE_ID = 1,
++IFLA_GENEVE_REMOTE = 2,
++IFLA_GENEVE_TTL = 3,
++IFLA_GENEVE_TOS = 4,
++IFLA_GENEVE_PORT = 5,
++IFLA_GENEVE_COLLECT_METADATA = 6,
++IFLA_GENEVE_REMOTE6 = 7,
++IFLA_GENEVE_UDP_CSUM = 8,
++IFLA_GENEVE_UDP_ZERO_CSUM6_TX = 9,
++IFLA_GENEVE_UDP_ZERO_CSUM6_RX = 10,
++IFLA_GENEVE_LABEL = 11,
++IFLA_GENEVE_TTL_INHERIT = 12,
++IFLA_GENEVE_DF = 13,
++IFLA_GENEVE_INNER_PROTO_INHERIT = 14,
++__IFLA_GENEVE_MAX = 15,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum ifla_geneve_df {
++GENEVE_DF_UNSET = 0,
++GENEVE_DF_SET = 1,
++GENEVE_DF_INHERIT = 2,
++__GENEVE_DF_END = 3,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_25 {
++IFLA_BAREUDP_UNSPEC = 0,
++IFLA_BAREUDP_PORT = 1,
++IFLA_BAREUDP_ETHERTYPE = 2,
++IFLA_BAREUDP_SRCPORT_MIN = 3,
++IFLA_BAREUDP_MULTIPROTO_MODE = 4,
++__IFLA_BAREUDP_MAX = 5,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_26 {
++IFLA_PPP_UNSPEC = 0,
++IFLA_PPP_DEV_FD = 1,
++__IFLA_PPP_MAX = 2,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum ifla_gtp_role {
++GTP_ROLE_GGSN = 0,
++GTP_ROLE_SGSN = 1,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_27 {
++IFLA_GTP_UNSPEC = 0,
++IFLA_GTP_FD0 = 1,
++IFLA_GTP_FD1 = 2,
++IFLA_GTP_PDP_HASHSIZE = 3,
++IFLA_GTP_ROLE = 4,
++IFLA_GTP_CREATE_SOCKETS = 5,
++IFLA_GTP_RESTART_COUNT = 6,
++__IFLA_GTP_MAX = 7,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_28 {
++IFLA_BOND_UNSPEC = 0,
++IFLA_BOND_MODE = 1,
++IFLA_BOND_ACTIVE_SLAVE = 2,
++IFLA_BOND_MIIMON = 3,
++IFLA_BOND_UPDELAY = 4,
++IFLA_BOND_DOWNDELAY = 5,
++IFLA_BOND_USE_CARRIER = 6,
++IFLA_BOND_ARP_INTERVAL = 7,
++IFLA_BOND_ARP_IP_TARGET = 8,
++IFLA_BOND_ARP_VALIDATE = 9,
++IFLA_BOND_ARP_ALL_TARGETS = 10,
++IFLA_BOND_PRIMARY = 11,
++IFLA_BOND_PRIMARY_RESELECT = 12,
++IFLA_BOND_FAIL_OVER_MAC = 13,
++IFLA_BOND_XMIT_HASH_POLICY = 14,
++IFLA_BOND_RESEND_IGMP = 15,
++IFLA_BOND_NUM_PEER_NOTIF = 16,
++IFLA_BOND_ALL_SLAVES_ACTIVE = 17,
++IFLA_BOND_MIN_LINKS = 18,
++IFLA_BOND_LP_INTERVAL = 19,
++IFLA_BOND_PACKETS_PER_SLAVE = 20,
++IFLA_BOND_AD_LACP_RATE = 21,
++IFLA_BOND_AD_SELECT = 22,
++IFLA_BOND_AD_INFO = 23,
++IFLA_BOND_AD_ACTOR_SYS_PRIO = 24,
++IFLA_BOND_AD_USER_PORT_KEY = 25,
++IFLA_BOND_AD_ACTOR_SYSTEM = 26,
++IFLA_BOND_TLB_DYNAMIC_LB = 27,
++IFLA_BOND_PEER_NOTIF_DELAY = 28,
++IFLA_BOND_AD_LACP_ACTIVE = 29,
++IFLA_BOND_MISSED_MAX = 30,
++IFLA_BOND_NS_IP6_TARGET = 31,
++__IFLA_BOND_MAX = 32,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_29 {
++IFLA_BOND_AD_INFO_UNSPEC = 0,
++IFLA_BOND_AD_INFO_AGGREGATOR = 1,
++IFLA_BOND_AD_INFO_NUM_PORTS = 2,
++IFLA_BOND_AD_INFO_ACTOR_KEY = 3,
++IFLA_BOND_AD_INFO_PARTNER_KEY = 4,
++IFLA_BOND_AD_INFO_PARTNER_MAC = 5,
++__IFLA_BOND_AD_INFO_MAX = 6,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_30 {
++IFLA_BOND_SLAVE_UNSPEC = 0,
++IFLA_BOND_SLAVE_STATE = 1,
++IFLA_BOND_SLAVE_MII_STATUS = 2,
++IFLA_BOND_SLAVE_LINK_FAILURE_COUNT = 3,
++IFLA_BOND_SLAVE_PERM_HWADDR = 4,
++IFLA_BOND_SLAVE_QUEUE_ID = 5,
++IFLA_BOND_SLAVE_AD_AGGREGATOR_ID = 6,
++IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE = 7,
++IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE = 8,
++IFLA_BOND_SLAVE_PRIO = 9,
++__IFLA_BOND_SLAVE_MAX = 10,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_31 {
++IFLA_VF_INFO_UNSPEC = 0,
++IFLA_VF_INFO = 1,
++__IFLA_VF_INFO_MAX = 2,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_32 {
++IFLA_VF_UNSPEC = 0,
++IFLA_VF_MAC = 1,
++IFLA_VF_VLAN = 2,
++IFLA_VF_TX_RATE = 3,
++IFLA_VF_SPOOFCHK = 4,
++IFLA_VF_LINK_STATE = 5,
++IFLA_VF_RATE = 6,
++IFLA_VF_RSS_QUERY_EN = 7,
++IFLA_VF_STATS = 8,
++IFLA_VF_TRUST = 9,
++IFLA_VF_IB_NODE_GUID = 10,
++IFLA_VF_IB_PORT_GUID = 11,
++IFLA_VF_VLAN_LIST = 12,
++IFLA_VF_BROADCAST = 13,
++__IFLA_VF_MAX = 14,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_33 {
++IFLA_VF_VLAN_INFO_UNSPEC = 0,
++IFLA_VF_VLAN_INFO = 1,
++__IFLA_VF_VLAN_INFO_MAX = 2,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_34 {
++IFLA_VF_LINK_STATE_AUTO = 0,
++IFLA_VF_LINK_STATE_ENABLE = 1,
++IFLA_VF_LINK_STATE_DISABLE = 2,
++__IFLA_VF_LINK_STATE_MAX = 3,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_35 {
++IFLA_VF_STATS_RX_PACKETS = 0,
++IFLA_VF_STATS_TX_PACKETS = 1,
++IFLA_VF_STATS_RX_BYTES = 2,
++IFLA_VF_STATS_TX_BYTES = 3,
++IFLA_VF_STATS_BROADCAST = 4,
++IFLA_VF_STATS_MULTICAST = 5,
++IFLA_VF_STATS_PAD = 6,
++IFLA_VF_STATS_RX_DROPPED = 7,
++IFLA_VF_STATS_TX_DROPPED = 8,
++__IFLA_VF_STATS_MAX = 9,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_36 {
++IFLA_VF_PORT_UNSPEC = 0,
++IFLA_VF_PORT = 1,
++__IFLA_VF_PORT_MAX = 2,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_37 {
++IFLA_PORT_UNSPEC = 0,
++IFLA_PORT_VF = 1,
++IFLA_PORT_PROFILE = 2,
++IFLA_PORT_VSI_TYPE = 3,
++IFLA_PORT_INSTANCE_UUID = 4,
++IFLA_PORT_HOST_UUID = 5,
++IFLA_PORT_REQUEST = 6,
++IFLA_PORT_RESPONSE = 7,
++__IFLA_PORT_MAX = 8,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_38 {
++PORT_REQUEST_PREASSOCIATE = 0,
++PORT_REQUEST_PREASSOCIATE_RR = 1,
++PORT_REQUEST_ASSOCIATE = 2,
++PORT_REQUEST_DISASSOCIATE = 3,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_39 {
++PORT_VDP_RESPONSE_SUCCESS = 0,
++PORT_VDP_RESPONSE_INVALID_FORMAT = 1,
++PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES = 2,
++PORT_VDP_RESPONSE_UNUSED_VTID = 3,
++PORT_VDP_RESPONSE_VTID_VIOLATION = 4,
++PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION = 5,
++PORT_VDP_RESPONSE_OUT_OF_SYNC = 6,
++PORT_PROFILE_RESPONSE_SUCCESS = 256,
++PORT_PROFILE_RESPONSE_INPROGRESS = 257,
++PORT_PROFILE_RESPONSE_INVALID = 258,
++PORT_PROFILE_RESPONSE_BADSTATE = 259,
++PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES = 260,
++PORT_PROFILE_RESPONSE_ERROR = 261,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_40 {
++IFLA_IPOIB_UNSPEC = 0,
++IFLA_IPOIB_PKEY = 1,
++IFLA_IPOIB_MODE = 2,
++IFLA_IPOIB_UMCAST = 3,
++__IFLA_IPOIB_MAX = 4,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_41 {
++IPOIB_MODE_DATAGRAM = 0,
++IPOIB_MODE_CONNECTED = 1,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_42 {
++HSR_PROTOCOL_HSR = 0,
++HSR_PROTOCOL_PRP = 1,
++HSR_PROTOCOL_MAX = 2,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_43 {
++IFLA_HSR_UNSPEC = 0,
++IFLA_HSR_SLAVE1 = 1,
++IFLA_HSR_SLAVE2 = 2,
++IFLA_HSR_MULTICAST_SPEC = 3,
++IFLA_HSR_SUPERVISION_ADDR = 4,
++IFLA_HSR_SEQ_NR = 5,
++IFLA_HSR_VERSION = 6,
++IFLA_HSR_PROTOCOL = 7,
++__IFLA_HSR_MAX = 8,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_44 {
++IFLA_STATS_UNSPEC = 0,
++IFLA_STATS_LINK_64 = 1,
++IFLA_STATS_LINK_XSTATS = 2,
++IFLA_STATS_LINK_XSTATS_SLAVE = 3,
++IFLA_STATS_LINK_OFFLOAD_XSTATS = 4,
++IFLA_STATS_AF_SPEC = 5,
++__IFLA_STATS_MAX = 6,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_45 {
++IFLA_STATS_GETSET_UNSPEC = 0,
++IFLA_STATS_GET_FILTERS = 1,
++IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS = 2,
++__IFLA_STATS_GETSET_MAX = 3,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_46 {
++LINK_XSTATS_TYPE_UNSPEC = 0,
++LINK_XSTATS_TYPE_BRIDGE = 1,
++LINK_XSTATS_TYPE_BOND = 2,
++__LINK_XSTATS_TYPE_MAX = 3,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_47 {
++IFLA_OFFLOAD_XSTATS_UNSPEC = 0,
++IFLA_OFFLOAD_XSTATS_CPU_HIT = 1,
++IFLA_OFFLOAD_XSTATS_HW_S_INFO = 2,
++IFLA_OFFLOAD_XSTATS_L3_STATS = 3,
++__IFLA_OFFLOAD_XSTATS_MAX = 4,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_48 {
++IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC = 0,
++IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST = 1,
++IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED = 2,
++__IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX = 3,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_49 {
++XDP_ATTACHED_NONE = 0,
++XDP_ATTACHED_DRV = 1,
++XDP_ATTACHED_SKB = 2,
++XDP_ATTACHED_HW = 3,
++XDP_ATTACHED_MULTI = 4,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_50 {
++IFLA_XDP_UNSPEC = 0,
++IFLA_XDP_FD = 1,
++IFLA_XDP_ATTACHED = 2,
++IFLA_XDP_FLAGS = 3,
++IFLA_XDP_PROG_ID = 4,
++IFLA_XDP_DRV_PROG_ID = 5,
++IFLA_XDP_SKB_PROG_ID = 6,
++IFLA_XDP_HW_PROG_ID = 7,
++IFLA_XDP_EXPECTED_FD = 8,
++__IFLA_XDP_MAX = 9,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_51 {
++IFLA_EVENT_NONE = 0,
++IFLA_EVENT_REBOOT = 1,
++IFLA_EVENT_FEATURES = 2,
++IFLA_EVENT_BONDING_FAILOVER = 3,
++IFLA_EVENT_NOTIFY_PEERS = 4,
++IFLA_EVENT_IGMP_RESEND = 5,
++IFLA_EVENT_BONDING_OPTIONS = 6,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_52 {
++IFLA_TUN_UNSPEC = 0,
++IFLA_TUN_OWNER = 1,
++IFLA_TUN_GROUP = 2,
++IFLA_TUN_TYPE = 3,
++IFLA_TUN_PI = 4,
++IFLA_TUN_VNET_HDR = 5,
++IFLA_TUN_PERSIST = 6,
++IFLA_TUN_MULTI_QUEUE = 7,
++IFLA_TUN_NUM_QUEUES = 8,
++IFLA_TUN_NUM_DISABLED_QUEUES = 9,
++__IFLA_TUN_MAX = 10,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_53 {
++IFLA_RMNET_UNSPEC = 0,
++IFLA_RMNET_MUX_ID = 1,
++IFLA_RMNET_FLAGS = 2,
++__IFLA_RMNET_MAX = 3,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_54 {
++IFLA_MCTP_UNSPEC = 0,
++IFLA_MCTP_NET = 1,
++__IFLA_MCTP_MAX = 2,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_55 {
++IFLA_DSA_UNSPEC = 0,
++IFLA_DSA_MASTER = 1,
++__IFLA_DSA_MAX = 2,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_56 {
++IF_PORT_UNKNOWN = 0,
++IF_PORT_10BASE2 = 1,
++IF_PORT_10BASET = 2,
++IF_PORT_AUI = 3,
++IF_PORT_100BASET = 4,
++IF_PORT_100BASETX = 5,
++IF_PORT_100BASEFX = 6,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub union __kernel_sockaddr_storage__bindgen_ty_1 {
++pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1,
++pub __align: *mut crate::ctypes::c_void,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub union if_settings__bindgen_ty_1 {
++pub raw_hdlc: *mut raw_hdlc_proto,
++pub cisco: *mut cisco_proto,
++pub fr: *mut fr_proto,
++pub fr_pvc: *mut fr_proto_pvc,
++pub fr_pvc_info: *mut fr_proto_pvc_info,
++pub x25: *mut x25_hdlc_proto,
++pub sync: *mut sync_serial_settings,
++pub te1: *mut te1_settings,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub union ifreq__bindgen_ty_1 {
++pub ifrn_name: [crate::ctypes::c_char; 16usize],
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub union ifreq__bindgen_ty_2 {
++pub ifru_addr: sockaddr,
++pub ifru_dstaddr: sockaddr,
++pub ifru_broadaddr: sockaddr,
++pub ifru_netmask: sockaddr,
++pub ifru_hwaddr: sockaddr,
++pub ifru_flags: crate::ctypes::c_short,
++pub ifru_ivalue: crate::ctypes::c_int,
++pub ifru_mtu: crate::ctypes::c_int,
++pub ifru_map: ifmap,
++pub ifru_slave: [crate::ctypes::c_char; 16usize],
++pub ifru_newname: [crate::ctypes::c_char; 16usize],
++pub ifru_data: *mut crate::ctypes::c_void,
++pub ifru_settings: if_settings,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub union ifconf__bindgen_ty_1 {
++pub ifcu_buf: *mut crate::ctypes::c_char,
++pub ifcu_req: *mut ifreq,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub union tpacket_stats_u {
++pub stats1: tpacket_stats,
++pub stats3: tpacket_stats_v3,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub union tpacket3_hdr__bindgen_ty_1 {
++pub hv1: tpacket_hdr_variant1,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub union tpacket_bd_ts__bindgen_ty_1 {
++pub ts_usec: crate::ctypes::c_uint,
++pub ts_nsec: crate::ctypes::c_uint,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub union tpacket_bd_header_u {
++pub bh1: tpacket_hdr_v1,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub union tpacket_req_u {
++pub req: tpacket_req,
++pub req3: tpacket_req3,
++}
++impl nlmsgerr_attrs {
++pub const NLMSGERR_ATTR_MAX: nlmsgerr_attrs = nlmsgerr_attrs::NLMSGERR_ATTR_MISS_NEST;
++}
++impl netlink_policy_type_attr {
++pub const NL_POLICY_TYPE_ATTR_MAX: netlink_policy_type_attr = netlink_policy_type_attr::NL_POLICY_TYPE_ATTR_MASK;
++}
++impl macsec_validation_type {
++pub const MACSEC_VALIDATE_MAX: macsec_validation_type = macsec_validation_type::MACSEC_VALIDATE_STRICT;
++}
++impl macsec_offload {
++pub const MACSEC_OFFLOAD_MAX: macsec_offload = macsec_offload::MACSEC_OFFLOAD_MAC;
++}
++impl ifla_vxlan_df {
++pub const VXLAN_DF_MAX: ifla_vxlan_df = ifla_vxlan_df::VXLAN_DF_INHERIT;
++}
++impl ifla_geneve_df {
++pub const GENEVE_DF_MAX: ifla_geneve_df = ifla_geneve_df::GENEVE_DF_INHERIT;
++}
+diff --git a/vendor/linux-raw-sys-0.4.14/src/sw_64/if_ether.rs b/vendor/linux-raw-sys-0.4.14/src/sw_64/if_ether.rs
+new file mode 100644
+index 00000000000..8a223bc5a6d
+--- /dev/null
++++ b/vendor/linux-raw-sys-0.4.14/src/sw_64/if_ether.rs
+@@ -0,0 +1,177 @@
++/* automatically generated by rust-bindgen 0.66.1 */
++
++pub type __s8 = crate::ctypes::c_schar;
++pub type __u8 = crate::ctypes::c_uchar;
++pub type __s16 = crate::ctypes::c_short;
++pub type __u16 = crate::ctypes::c_ushort;
++pub type __s32 = crate::ctypes::c_int;
++pub type __u32 = crate::ctypes::c_uint;
++pub type __s64 = crate::ctypes::c_long;
++pub type __u64 = crate::ctypes::c_ulong;
++pub type __kernel_key_t = crate::ctypes::c_int;
++pub type __kernel_mqd_t = crate::ctypes::c_int;
++pub type __kernel_daddr_t = crate::ctypes::c_long;
++pub type __kernel_long_t = crate::ctypes::c_long;
++pub type __kernel_ulong_t = crate::ctypes::c_ulong;
++pub type __kernel_ino_t = __kernel_ulong_t;
++pub type __kernel_mode_t = crate::ctypes::c_uint;
++pub type __kernel_pid_t = crate::ctypes::c_int;
++pub type __kernel_ipc_pid_t = crate::ctypes::c_int;
++pub type __kernel_uid_t = crate::ctypes::c_uint;
++pub type __kernel_gid_t = crate::ctypes::c_uint;
++pub type __kernel_suseconds_t = __kernel_long_t;
++pub type __kernel_uid32_t = crate::ctypes::c_uint;
++pub type __kernel_gid32_t = crate::ctypes::c_uint;
++pub type __kernel_old_uid_t = __kernel_uid_t;
++pub type __kernel_old_gid_t = __kernel_gid_t;
++pub type __kernel_old_dev_t = crate::ctypes::c_uint;
++pub type __kernel_size_t = __kernel_ulong_t;
++pub type __kernel_ssize_t = __kernel_long_t;
++pub type __kernel_ptrdiff_t = __kernel_long_t;
++pub type __kernel_off_t = __kernel_long_t;
++pub type __kernel_loff_t = crate::ctypes::c_longlong;
++pub type __kernel_old_time_t = __kernel_long_t;
++pub type __kernel_time_t = __kernel_long_t;
++pub type __kernel_time64_t = crate::ctypes::c_longlong;
++pub type __kernel_clock_t = __kernel_long_t;
++pub type __kernel_timer_t = crate::ctypes::c_int;
++pub type __kernel_clockid_t = crate::ctypes::c_int;
++pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
++pub type __kernel_uid16_t = crate::ctypes::c_ushort;
++pub type __kernel_gid16_t = crate::ctypes::c_ushort;
++pub type __le16 = __u16;
++pub type __be16 = __u16;
++pub type __le32 = __u32;
++pub type __be32 = __u32;
++pub type __le64 = __u64;
++pub type __be64 = __u64;
++pub type __sum16 = __u16;
++pub type __wsum = __u32;
++pub type __poll_t = crate::ctypes::c_uint;
++#[repr(C, packed)]
++#[derive(Debug, Copy, Clone)]
++pub struct ethhdr {
++pub h_dest: [crate::ctypes::c_uchar; 6usize],
++pub h_source: [crate::ctypes::c_uchar; 6usize],
++pub h_proto: __be16,
++}
++pub const _MIPS_ISA_MIPS1: u32 = 1;
++pub const _MIPS_ISA_MIPS2: u32 = 2;
++pub const _MIPS_ISA_MIPS3: u32 = 3;
++pub const _MIPS_ISA_MIPS4: u32 = 4;
++pub const _MIPS_ISA_MIPS5: u32 = 5;
++pub const _MIPS_ISA_MIPS32: u32 = 6;
++pub const _MIPS_ISA_MIPS64: u32 = 7;
++pub const _MIPS_SIM_ABI32: u32 = 1;
++pub const _MIPS_SIM_NABI32: u32 = 2;
++pub const _MIPS_SIM_ABI64: u32 = 3;
++pub const ETH_ALEN: u32 = 6;
++pub const ETH_TLEN: u32 = 2;
++pub const ETH_HLEN: u32 = 14;
++pub const ETH_ZLEN: u32 = 60;
++pub const ETH_DATA_LEN: u32 = 1500;
++pub const ETH_FRAME_LEN: u32 = 1514;
++pub const ETH_FCS_LEN: u32 = 4;
++pub const ETH_MIN_MTU: u32 = 68;
++pub const ETH_MAX_MTU: u32 = 65535;
++pub const ETH_P_LOOP: u32 = 96;
++pub const ETH_P_PUP: u32 = 512;
++pub const ETH_P_PUPAT: u32 = 513;
++pub const ETH_P_TSN: u32 = 8944;
++pub const ETH_P_ERSPAN2: u32 = 8939;
++pub const ETH_P_IP: u32 = 2048;
++pub const ETH_P_X25: u32 = 2053;
++pub const ETH_P_ARP: u32 = 2054;
++pub const ETH_P_BPQ: u32 = 2303;
++pub const ETH_P_IEEEPUP: u32 = 2560;
++pub const ETH_P_IEEEPUPAT: u32 = 2561;
++pub const ETH_P_BATMAN: u32 = 17157;
++pub const ETH_P_DEC: u32 = 24576;
++pub const ETH_P_DNA_DL: u32 = 24577;
++pub const ETH_P_DNA_RC: u32 = 24578;
++pub const ETH_P_DNA_RT: u32 = 24579;
++pub const ETH_P_LAT: u32 = 24580;
++pub const ETH_P_DIAG: u32 = 24581;
++pub const ETH_P_CUST: u32 = 24582;
++pub const ETH_P_SCA: u32 = 24583;
++pub const ETH_P_TEB: u32 = 25944;
++pub const ETH_P_RARP: u32 = 32821;
++pub const ETH_P_ATALK: u32 = 32923;
++pub const ETH_P_AARP: u32 = 33011;
++pub const ETH_P_8021Q: u32 = 33024;
++pub const ETH_P_ERSPAN: u32 = 35006;
++pub const ETH_P_IPX: u32 = 33079;
++pub const ETH_P_IPV6: u32 = 34525;
++pub const ETH_P_PAUSE: u32 = 34824;
++pub const ETH_P_SLOW: u32 = 34825;
++pub const ETH_P_WCCP: u32 = 34878;
++pub const ETH_P_MPLS_UC: u32 = 34887;
++pub const ETH_P_MPLS_MC: u32 = 34888;
++pub const ETH_P_ATMMPOA: u32 = 34892;
++pub const ETH_P_PPP_DISC: u32 = 34915;
++pub const ETH_P_PPP_SES: u32 = 34916;
++pub const ETH_P_LINK_CTL: u32 = 34924;
++pub const ETH_P_ATMFATE: u32 = 34948;
++pub const ETH_P_PAE: u32 = 34958;
++pub const ETH_P_PROFINET: u32 = 34962;
++pub const ETH_P_REALTEK: u32 = 34969;
++pub const ETH_P_AOE: u32 = 34978;
++pub const ETH_P_ETHERCAT: u32 = 34980;
++pub const ETH_P_8021AD: u32 = 34984;
++pub const ETH_P_802_EX1: u32 = 34997;
++pub const ETH_P_PREAUTH: u32 = 35015;
++pub const ETH_P_TIPC: u32 = 35018;
++pub const ETH_P_LLDP: u32 = 35020;
++pub const ETH_P_MRP: u32 = 35043;
++pub const ETH_P_MACSEC: u32 = 35045;
++pub const ETH_P_8021AH: u32 = 35047;
++pub const ETH_P_MVRP: u32 = 35061;
++pub const ETH_P_1588: u32 = 35063;
++pub const ETH_P_NCSI: u32 = 35064;
++pub const ETH_P_PRP: u32 = 35067;
++pub const ETH_P_CFM: u32 = 35074;
++pub const ETH_P_FCOE: u32 = 35078;
++pub const ETH_P_IBOE: u32 = 35093;
++pub const ETH_P_TDLS: u32 = 35085;
++pub const ETH_P_FIP: u32 = 35092;
++pub const ETH_P_80221: u32 = 35095;
++pub const ETH_P_HSR: u32 = 35119;
++pub const ETH_P_NSH: u32 = 35151;
++pub const ETH_P_LOOPBACK: u32 = 36864;
++pub const ETH_P_QINQ1: u32 = 37120;
++pub const ETH_P_QINQ2: u32 = 37376;
++pub const ETH_P_QINQ3: u32 = 37632;
++pub const ETH_P_EDSA: u32 = 56026;
++pub const ETH_P_DSA_8021Q: u32 = 56027;
++pub const ETH_P_DSA_A5PSW: u32 = 57345;
++pub const ETH_P_IFE: u32 = 60734;
++pub const ETH_P_AF_IUCV: u32 = 64507;
++pub const ETH_P_802_3_MIN: u32 = 1536;
++pub const ETH_P_802_3: u32 = 1;
++pub const ETH_P_AX25: u32 = 2;
++pub const ETH_P_ALL: u32 = 3;
++pub const ETH_P_802_2: u32 = 4;
++pub const ETH_P_SNAP: u32 = 5;
++pub const ETH_P_DDCMP: u32 = 6;
++pub const ETH_P_WAN_PPP: u32 = 7;
++pub const ETH_P_PPP_MP: u32 = 8;
++pub const ETH_P_LOCALTALK: u32 = 9;
++pub const ETH_P_CAN: u32 = 12;
++pub const ETH_P_CANFD: u32 = 13;
++pub const ETH_P_CANXL: u32 = 14;
++pub const ETH_P_PPPTALK: u32 = 16;
++pub const ETH_P_TR_802_2: u32 = 17;
++pub const ETH_P_MOBITEX: u32 = 21;
++pub const ETH_P_CONTROL: u32 = 22;
++pub const ETH_P_IRDA: u32 = 23;
++pub const ETH_P_ECONET: u32 = 24;
++pub const ETH_P_HDLC: u32 = 25;
++pub const ETH_P_ARCNET: u32 = 26;
++pub const ETH_P_DSA: u32 = 27;
++pub const ETH_P_TRAILER: u32 = 28;
++pub const ETH_P_PHONET: u32 = 245;
++pub const ETH_P_IEEE802154: u32 = 246;
++pub const ETH_P_CAIF: u32 = 247;
++pub const ETH_P_XDSA: u32 = 248;
++pub const ETH_P_MAP: u32 = 249;
++pub const ETH_P_MCTP: u32 = 250;
+diff --git a/vendor/linux-raw-sys-0.4.14/src/sw_64/if_packet.rs b/vendor/linux-raw-sys-0.4.14/src/sw_64/if_packet.rs
+new file mode 100644
+index 00000000000..191386e06a2
+--- /dev/null
++++ b/vendor/linux-raw-sys-0.4.14/src/sw_64/if_packet.rs
+@@ -0,0 +1,317 @@
++/* automatically generated by rust-bindgen 0.66.1 */
++
++pub type __s8 = crate::ctypes::c_schar;
++pub type __u8 = crate::ctypes::c_uchar;
++pub type __s16 = crate::ctypes::c_short;
++pub type __u16 = crate::ctypes::c_ushort;
++pub type __s32 = crate::ctypes::c_int;
++pub type __u32 = crate::ctypes::c_uint;
++pub type __s64 = crate::ctypes::c_long;
++pub type __u64 = crate::ctypes::c_ulong;
++pub type __kernel_key_t = crate::ctypes::c_int;
++pub type __kernel_mqd_t = crate::ctypes::c_int;
++pub type __kernel_daddr_t = crate::ctypes::c_long;
++pub type __kernel_long_t = crate::ctypes::c_long;
++pub type __kernel_ulong_t = crate::ctypes::c_ulong;
++pub type __kernel_ino_t = __kernel_ulong_t;
++pub type __kernel_mode_t = crate::ctypes::c_uint;
++pub type __kernel_pid_t = crate::ctypes::c_int;
++pub type __kernel_ipc_pid_t = crate::ctypes::c_int;
++pub type __kernel_uid_t = crate::ctypes::c_uint;
++pub type __kernel_gid_t = crate::ctypes::c_uint;
++pub type __kernel_suseconds_t = __kernel_long_t;
++pub type __kernel_uid32_t = crate::ctypes::c_uint;
++pub type __kernel_gid32_t = crate::ctypes::c_uint;
++pub type __kernel_old_uid_t = __kernel_uid_t;
++pub type __kernel_old_gid_t = __kernel_gid_t;
++pub type __kernel_old_dev_t = crate::ctypes::c_uint;
++pub type __kernel_size_t = __kernel_ulong_t;
++pub type __kernel_ssize_t = __kernel_long_t;
++pub type __kernel_ptrdiff_t = __kernel_long_t;
++pub type __kernel_off_t = __kernel_long_t;
++pub type __kernel_loff_t = crate::ctypes::c_longlong;
++pub type __kernel_old_time_t = __kernel_long_t;
++pub type __kernel_time_t = __kernel_long_t;
++pub type __kernel_time64_t = crate::ctypes::c_longlong;
++pub type __kernel_clock_t = __kernel_long_t;
++pub type __kernel_timer_t = crate::ctypes::c_int;
++pub type __kernel_clockid_t = crate::ctypes::c_int;
++pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
++pub type __kernel_uid16_t = crate::ctypes::c_ushort;
++pub type __kernel_gid16_t = crate::ctypes::c_ushort;
++pub type __le16 = __u16;
++pub type __be16 = __u16;
++pub type __le32 = __u32;
++pub type __be32 = __u32;
++pub type __le64 = __u64;
++pub type __be64 = __u64;
++pub type __sum16 = __u16;
++pub type __wsum = __u32;
++pub type __poll_t = crate::ctypes::c_uint;
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct sockaddr_pkt {
++pub spkt_family: crate::ctypes::c_ushort,
++pub spkt_device: [crate::ctypes::c_uchar; 14usize],
++pub spkt_protocol: __be16,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct sockaddr_ll {
++pub sll_family: crate::ctypes::c_ushort,
++pub sll_protocol: __be16,
++pub sll_ifindex: crate::ctypes::c_int,
++pub sll_hatype: crate::ctypes::c_ushort,
++pub sll_pkttype: crate::ctypes::c_uchar,
++pub sll_halen: crate::ctypes::c_uchar,
++pub sll_addr: [crate::ctypes::c_uchar; 8usize],
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct tpacket_stats {
++pub tp_packets: crate::ctypes::c_uint,
++pub tp_drops: crate::ctypes::c_uint,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct tpacket_stats_v3 {
++pub tp_packets: crate::ctypes::c_uint,
++pub tp_drops: crate::ctypes::c_uint,
++pub tp_freeze_q_cnt: crate::ctypes::c_uint,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct tpacket_rollover_stats {
++pub tp_all: __u64,
++pub tp_huge: __u64,
++pub tp_failed: __u64,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct tpacket_auxdata {
++pub tp_status: __u32,
++pub tp_len: __u32,
++pub tp_snaplen: __u32,
++pub tp_mac: __u16,
++pub tp_net: __u16,
++pub tp_vlan_tci: __u16,
++pub tp_vlan_tpid: __u16,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct tpacket_hdr {
++pub tp_status: crate::ctypes::c_ulong,
++pub tp_len: crate::ctypes::c_uint,
++pub tp_snaplen: crate::ctypes::c_uint,
++pub tp_mac: crate::ctypes::c_ushort,
++pub tp_net: crate::ctypes::c_ushort,
++pub tp_sec: crate::ctypes::c_uint,
++pub tp_usec: crate::ctypes::c_uint,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct tpacket2_hdr {
++pub tp_status: __u32,
++pub tp_len: __u32,
++pub tp_snaplen: __u32,
++pub tp_mac: __u16,
++pub tp_net: __u16,
++pub tp_sec: __u32,
++pub tp_nsec: __u32,
++pub tp_vlan_tci: __u16,
++pub tp_vlan_tpid: __u16,
++pub tp_padding: [__u8; 4usize],
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct tpacket_hdr_variant1 {
++pub tp_rxhash: __u32,
++pub tp_vlan_tci: __u32,
++pub tp_vlan_tpid: __u16,
++pub tp_padding: __u16,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub struct tpacket3_hdr {
++pub tp_next_offset: __u32,
++pub tp_sec: __u32,
++pub tp_nsec: __u32,
++pub tp_snaplen: __u32,
++pub tp_len: __u32,
++pub tp_status: __u32,
++pub tp_mac: __u16,
++pub tp_net: __u16,
++pub __bindgen_anon_1: tpacket3_hdr__bindgen_ty_1,
++pub tp_padding: [__u8; 8usize],
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub struct tpacket_bd_ts {
++pub ts_sec: crate::ctypes::c_uint,
++pub __bindgen_anon_1: tpacket_bd_ts__bindgen_ty_1,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub struct tpacket_hdr_v1 {
++pub block_status: __u32,
++pub num_pkts: __u32,
++pub offset_to_first_pkt: __u32,
++pub blk_len: __u32,
++pub seq_num: __u64,
++pub ts_first_pkt: tpacket_bd_ts,
++pub ts_last_pkt: tpacket_bd_ts,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub struct tpacket_block_desc {
++pub version: __u32,
++pub offset_to_priv: __u32,
++pub hdr: tpacket_bd_header_u,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct tpacket_req {
++pub tp_block_size: crate::ctypes::c_uint,
++pub tp_block_nr: crate::ctypes::c_uint,
++pub tp_frame_size: crate::ctypes::c_uint,
++pub tp_frame_nr: crate::ctypes::c_uint,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct tpacket_req3 {
++pub tp_block_size: crate::ctypes::c_uint,
++pub tp_block_nr: crate::ctypes::c_uint,
++pub tp_frame_size: crate::ctypes::c_uint,
++pub tp_frame_nr: crate::ctypes::c_uint,
++pub tp_retire_blk_tov: crate::ctypes::c_uint,
++pub tp_sizeof_priv: crate::ctypes::c_uint,
++pub tp_feature_req_word: crate::ctypes::c_uint,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct packet_mreq {
++pub mr_ifindex: crate::ctypes::c_int,
++pub mr_type: crate::ctypes::c_ushort,
++pub mr_alen: crate::ctypes::c_ushort,
++pub mr_address: [crate::ctypes::c_uchar; 8usize],
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct fanout_args {
++pub type_flags: __u16,
++pub id: __u16,
++pub max_num_members: __u32,
++}
++pub const __BIG_ENDIAN: u32 = 4321;
++pub const _MIPS_ISA_MIPS1: u32 = 1;
++pub const _MIPS_ISA_MIPS2: u32 = 2;
++pub const _MIPS_ISA_MIPS3: u32 = 3;
++pub const _MIPS_ISA_MIPS4: u32 = 4;
++pub const _MIPS_ISA_MIPS5: u32 = 5;
++pub const _MIPS_ISA_MIPS32: u32 = 6;
++pub const _MIPS_ISA_MIPS64: u32 = 7;
++pub const _MIPS_SIM_ABI32: u32 = 1;
++pub const _MIPS_SIM_NABI32: u32 = 2;
++pub const _MIPS_SIM_ABI64: u32 = 3;
++pub const PACKET_HOST: u32 = 0;
++pub const PACKET_BROADCAST: u32 = 1;
++pub const PACKET_MULTICAST: u32 = 2;
++pub const PACKET_OTHERHOST: u32 = 3;
++pub const PACKET_OUTGOING: u32 = 4;
++pub const PACKET_LOOPBACK: u32 = 5;
++pub const PACKET_USER: u32 = 6;
++pub const PACKET_KERNEL: u32 = 7;
++pub const PACKET_FASTROUTE: u32 = 6;
++pub const PACKET_ADD_MEMBERSHIP: u32 = 1;
++pub const PACKET_DROP_MEMBERSHIP: u32 = 2;
++pub const PACKET_RECV_OUTPUT: u32 = 3;
++pub const PACKET_RX_RING: u32 = 5;
++pub const PACKET_STATISTICS: u32 = 6;
++pub const PACKET_COPY_THRESH: u32 = 7;
++pub const PACKET_AUXDATA: u32 = 8;
++pub const PACKET_ORIGDEV: u32 = 9;
++pub const PACKET_VERSION: u32 = 10;
++pub const PACKET_HDRLEN: u32 = 11;
++pub const PACKET_RESERVE: u32 = 12;
++pub const PACKET_TX_RING: u32 = 13;
++pub const PACKET_LOSS: u32 = 14;
++pub const PACKET_VNET_HDR: u32 = 15;
++pub const PACKET_TX_TIMESTAMP: u32 = 16;
++pub const PACKET_TIMESTAMP: u32 = 17;
++pub const PACKET_FANOUT: u32 = 18;
++pub const PACKET_TX_HAS_OFF: u32 = 19;
++pub const PACKET_QDISC_BYPASS: u32 = 20;
++pub const PACKET_ROLLOVER_STATS: u32 = 21;
++pub const PACKET_FANOUT_DATA: u32 = 22;
++pub const PACKET_IGNORE_OUTGOING: u32 = 23;
++pub const PACKET_FANOUT_HASH: u32 = 0;
++pub const PACKET_FANOUT_LB: u32 = 1;
++pub const PACKET_FANOUT_CPU: u32 = 2;
++pub const PACKET_FANOUT_ROLLOVER: u32 = 3;
++pub const PACKET_FANOUT_RND: u32 = 4;
++pub const PACKET_FANOUT_QM: u32 = 5;
++pub const PACKET_FANOUT_CBPF: u32 = 6;
++pub const PACKET_FANOUT_EBPF: u32 = 7;
++pub const PACKET_FANOUT_FLAG_ROLLOVER: u32 = 4096;
++pub const PACKET_FANOUT_FLAG_UNIQUEID: u32 = 8192;
++pub const PACKET_FANOUT_FLAG_IGNORE_OUTGOING: u32 = 16384;
++pub const PACKET_FANOUT_FLAG_DEFRAG: u32 = 32768;
++pub const TP_STATUS_KERNEL: u32 = 0;
++pub const TP_STATUS_USER: u32 = 1;
++pub const TP_STATUS_COPY: u32 = 2;
++pub const TP_STATUS_LOSING: u32 = 4;
++pub const TP_STATUS_CSUMNOTREADY: u32 = 8;
++pub const TP_STATUS_VLAN_VALID: u32 = 16;
++pub const TP_STATUS_BLK_TMO: u32 = 32;
++pub const TP_STATUS_VLAN_TPID_VALID: u32 = 64;
++pub const TP_STATUS_CSUM_VALID: u32 = 128;
++pub const TP_STATUS_GSO_TCP: u32 = 256;
++pub const TP_STATUS_AVAILABLE: u32 = 0;
++pub const TP_STATUS_SEND_REQUEST: u32 = 1;
++pub const TP_STATUS_SENDING: u32 = 2;
++pub const TP_STATUS_WRONG_FORMAT: u32 = 4;
++pub const TP_STATUS_TS_SOFTWARE: u32 = 536870912;
++pub const TP_STATUS_TS_SYS_HARDWARE: u32 = 1073741824;
++pub const TP_STATUS_TS_RAW_HARDWARE: u32 = 2147483648;
++pub const TP_FT_REQ_FILL_RXHASH: u32 = 1;
++pub const TPACKET_ALIGNMENT: u32 = 16;
++pub const PACKET_MR_MULTICAST: u32 = 0;
++pub const PACKET_MR_PROMISC: u32 = 1;
++pub const PACKET_MR_ALLMULTI: u32 = 2;
++pub const PACKET_MR_UNICAST: u32 = 3;
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum tpacket_versions {
++TPACKET_V1 = 0,
++TPACKET_V2 = 1,
++TPACKET_V3 = 2,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub union tpacket_stats_u {
++pub stats1: tpacket_stats,
++pub stats3: tpacket_stats_v3,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub union tpacket3_hdr__bindgen_ty_1 {
++pub hv1: tpacket_hdr_variant1,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub union tpacket_bd_ts__bindgen_ty_1 {
++pub ts_usec: crate::ctypes::c_uint,
++pub ts_nsec: crate::ctypes::c_uint,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub union tpacket_bd_header_u {
++pub bh1: tpacket_hdr_v1,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub union tpacket_req_u {
++pub req: tpacket_req,
++pub req3: tpacket_req3,
++}
+diff --git a/vendor/linux-raw-sys-0.4.14/src/sw_64/io_uring.rs b/vendor/linux-raw-sys-0.4.14/src/sw_64/io_uring.rs
+new file mode 100644
+index 00000000000..a12baeca397
+--- /dev/null
++++ b/vendor/linux-raw-sys-0.4.14/src/sw_64/io_uring.rs
+@@ -0,0 +1,1096 @@
++/* automatically generated by rust-bindgen 0.66.1 */
++
++pub type __s8 = crate::ctypes::c_schar;
++pub type __u8 = crate::ctypes::c_uchar;
++pub type __s16 = crate::ctypes::c_short;
++pub type __u16 = crate::ctypes::c_ushort;
++pub type __s32 = crate::ctypes::c_int;
++pub type __u32 = crate::ctypes::c_uint;
++pub type __s64 = crate::ctypes::c_long;
++pub type __u64 = crate::ctypes::c_ulong;
++pub type __kernel_key_t = crate::ctypes::c_int;
++pub type __kernel_mqd_t = crate::ctypes::c_int;
++pub type __kernel_daddr_t = crate::ctypes::c_long;
++pub type __kernel_long_t = crate::ctypes::c_long;
++pub type __kernel_ulong_t = crate::ctypes::c_ulong;
++pub type __kernel_ino_t = __kernel_ulong_t;
++pub type __kernel_mode_t = crate::ctypes::c_uint;
++pub type __kernel_pid_t = crate::ctypes::c_int;
++pub type __kernel_ipc_pid_t = crate::ctypes::c_int;
++pub type __kernel_uid_t = crate::ctypes::c_uint;
++pub type __kernel_gid_t = crate::ctypes::c_uint;
++pub type __kernel_suseconds_t = __kernel_long_t;
++pub type __kernel_uid32_t = crate::ctypes::c_uint;
++pub type __kernel_gid32_t = crate::ctypes::c_uint;
++pub type __kernel_old_uid_t = __kernel_uid_t;
++pub type __kernel_old_gid_t = __kernel_gid_t;
++pub type __kernel_old_dev_t = crate::ctypes::c_uint;
++pub type __kernel_size_t = __kernel_ulong_t;
++pub type __kernel_ssize_t = __kernel_long_t;
++pub type __kernel_ptrdiff_t = __kernel_long_t;
++pub type __kernel_off_t = __kernel_long_t;
++pub type __kernel_loff_t = crate::ctypes::c_longlong;
++pub type __kernel_old_time_t = __kernel_long_t;
++pub type __kernel_time_t = __kernel_long_t;
++pub type __kernel_time64_t = crate::ctypes::c_longlong;
++pub type __kernel_clock_t = __kernel_long_t;
++pub type __kernel_timer_t = crate::ctypes::c_int;
++pub type __kernel_clockid_t = crate::ctypes::c_int;
++pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
++pub type __kernel_uid16_t = crate::ctypes::c_ushort;
++pub type __kernel_gid16_t = crate::ctypes::c_ushort;
++pub type __le16 = __u16;
++pub type __be16 = __u16;
++pub type __le32 = __u32;
++pub type __be32 = __u32;
++pub type __le64 = __u64;
++pub type __be64 = __u64;
++pub type __sum16 = __u16;
++pub type __wsum = __u32;
++pub type __poll_t = crate::ctypes::c_uint;
++pub type __kernel_rwf_t = crate::ctypes::c_int;
++#[repr(C)]
++#[derive(Default)]
++pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
++#[repr(C)]
++pub struct __BindgenUnionField<T>(::core::marker::PhantomData<T>);
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct fscrypt_policy_v1 {
++pub version: __u8,
++pub contents_encryption_mode: __u8,
++pub filenames_encryption_mode: __u8,
++pub flags: __u8,
++pub master_key_descriptor: [__u8; 8usize],
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct fscrypt_key {
++pub mode: __u32,
++pub raw: [__u8; 64usize],
++pub size: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct fscrypt_policy_v2 {
++pub version: __u8,
++pub contents_encryption_mode: __u8,
++pub filenames_encryption_mode: __u8,
++pub flags: __u8,
++pub __reserved: [__u8; 4usize],
++pub master_key_identifier: [__u8; 16usize],
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub struct fscrypt_get_policy_ex_arg {
++pub policy_size: __u64,
++pub policy: fscrypt_get_policy_ex_arg__bindgen_ty_1,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub struct fscrypt_key_specifier {
++pub type_: __u32,
++pub __reserved: __u32,
++pub u: fscrypt_key_specifier__bindgen_ty_1,
++}
++#[repr(C)]
++#[derive(Debug)]
++pub struct fscrypt_provisioning_key_payload {
++pub type_: __u32,
++pub __reserved: __u32,
++pub raw: __IncompleteArrayField<__u8>,
++}
++#[repr(C)]
++pub struct fscrypt_add_key_arg {
++pub key_spec: fscrypt_key_specifier,
++pub raw_size: __u32,
++pub key_id: __u32,
++pub __reserved: [__u32; 8usize],
++pub raw: __IncompleteArrayField<__u8>,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub struct fscrypt_remove_key_arg {
++pub key_spec: fscrypt_key_specifier,
++pub removal_status_flags: __u32,
++pub __reserved: [__u32; 5usize],
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub struct fscrypt_get_key_status_arg {
++pub key_spec: fscrypt_key_specifier,
++pub __reserved: [__u32; 6usize],
++pub status: __u32,
++pub status_flags: __u32,
++pub user_count: __u32,
++pub __out_reserved: [__u32; 13usize],
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct mount_attr {
++pub attr_set: __u64,
++pub attr_clr: __u64,
++pub propagation: __u64,
++pub userns_fd: __u64,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct file_clone_range {
++pub src_fd: __s64,
++pub src_offset: __u64,
++pub src_length: __u64,
++pub dest_offset: __u64,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct fstrim_range {
++pub start: __u64,
++pub len: __u64,
++pub minlen: __u64,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct file_dedupe_range_info {
++pub dest_fd: __s64,
++pub dest_offset: __u64,
++pub bytes_deduped: __u64,
++pub status: __s32,
++pub reserved: __u32,
++}
++#[repr(C)]
++#[derive(Debug)]
++pub struct file_dedupe_range {
++pub src_offset: __u64,
++pub src_length: __u64,
++pub dest_count: __u16,
++pub reserved1: __u16,
++pub reserved2: __u32,
++pub info: __IncompleteArrayField<file_dedupe_range_info>,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct files_stat_struct {
++pub nr_files: crate::ctypes::c_ulong,
++pub nr_free_files: crate::ctypes::c_ulong,
++pub max_files: crate::ctypes::c_ulong,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct inodes_stat_t {
++pub nr_inodes: crate::ctypes::c_long,
++pub nr_unused: crate::ctypes::c_long,
++pub dummy: [crate::ctypes::c_long; 5usize],
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct fsxattr {
++pub fsx_xflags: __u32,
++pub fsx_extsize: __u32,
++pub fsx_nextents: __u32,
++pub fsx_projid: __u32,
++pub fsx_cowextsize: __u32,
++pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct __kernel_timespec {
++pub tv_sec: __kernel_time64_t,
++pub tv_nsec: crate::ctypes::c_longlong,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct __kernel_itimerspec {
++pub it_interval: __kernel_timespec,
++pub it_value: __kernel_timespec,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct __kernel_old_timeval {
++pub tv_sec: __kernel_long_t,
++pub tv_usec: __kernel_long_t,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct __kernel_old_timespec {
++pub tv_sec: __kernel_old_time_t,
++pub tv_nsec: crate::ctypes::c_long,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct __kernel_old_itimerval {
++pub it_interval: __kernel_old_timeval,
++pub it_value: __kernel_old_timeval,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct __kernel_sock_timeval {
++pub tv_sec: __s64,
++pub tv_usec: __s64,
++}
++#[repr(C)]
++pub struct io_uring_sqe {
++pub opcode: __u8,
++pub flags: __u8,
++pub ioprio: __u16,
++pub fd: __s32,
++pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_1,
++pub __bindgen_anon_2: io_uring_sqe__bindgen_ty_2,
++pub len: __u32,
++pub __bindgen_anon_3: io_uring_sqe__bindgen_ty_3,
++pub user_data: __u64,
++pub __bindgen_anon_4: io_uring_sqe__bindgen_ty_4,
++pub personality: __u16,
++pub __bindgen_anon_5: io_uring_sqe__bindgen_ty_5,
++pub __bindgen_anon_6: io_uring_sqe__bindgen_ty_6,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct io_uring_sqe__bindgen_ty_1__bindgen_ty_1 {
++pub cmd_op: __u32,
++pub __pad1: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct io_uring_sqe__bindgen_ty_5__bindgen_ty_1 {
++pub addr_len: __u16,
++pub __pad3: [__u16; 1usize],
++}
++#[repr(C)]
++pub struct io_uring_sqe__bindgen_ty_6 {
++pub __bindgen_anon_1: __BindgenUnionField<io_uring_sqe__bindgen_ty_6__bindgen_ty_1>,
++pub cmd: __BindgenUnionField<[__u8; 0usize]>,
++pub bindgen_union_field: [u64; 2usize],
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct io_uring_sqe__bindgen_ty_6__bindgen_ty_1 {
++pub addr3: __u64,
++pub __pad2: [__u64; 1usize],
++}
++#[repr(C)]
++#[derive(Debug)]
++pub struct io_uring_cqe {
++pub user_data: __u64,
++pub res: __s32,
++pub flags: __u32,
++pub big_cqe: __IncompleteArrayField<__u64>,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct io_sqring_offsets {
++pub head: __u32,
++pub tail: __u32,
++pub ring_mask: __u32,
++pub ring_entries: __u32,
++pub flags: __u32,
++pub dropped: __u32,
++pub array: __u32,
++pub resv1: __u32,
++pub resv2: __u64,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct io_cqring_offsets {
++pub head: __u32,
++pub tail: __u32,
++pub ring_mask: __u32,
++pub ring_entries: __u32,
++pub overflow: __u32,
++pub cqes: __u32,
++pub flags: __u32,
++pub resv1: __u32,
++pub resv2: __u64,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct io_uring_params {
++pub sq_entries: __u32,
++pub cq_entries: __u32,
++pub flags: __u32,
++pub sq_thread_cpu: __u32,
++pub sq_thread_idle: __u32,
++pub features: __u32,
++pub wq_fd: __u32,
++pub resv: [__u32; 3usize],
++pub sq_off: io_sqring_offsets,
++pub cq_off: io_cqring_offsets,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct io_uring_files_update {
++pub offset: __u32,
++pub resv: __u32,
++pub fds: __u64,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct io_uring_rsrc_register {
++pub nr: __u32,
++pub flags: __u32,
++pub resv2: __u64,
++pub data: __u64,
++pub tags: __u64,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct io_uring_rsrc_update {
++pub offset: __u32,
++pub resv: __u32,
++pub data: __u64,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct io_uring_rsrc_update2 {
++pub offset: __u32,
++pub resv: __u32,
++pub data: __u64,
++pub tags: __u64,
++pub nr: __u32,
++pub resv2: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct io_uring_notification_slot {
++pub tag: __u64,
++pub resv: [__u64; 3usize],
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct io_uring_notification_register {
++pub nr_slots: __u32,
++pub resv: __u32,
++pub resv2: __u64,
++pub data: __u64,
++pub resv3: __u64,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct io_uring_probe_op {
++pub op: __u8,
++pub resv: __u8,
++pub flags: __u16,
++pub resv2: __u32,
++}
++#[repr(C)]
++#[derive(Debug)]
++pub struct io_uring_probe {
++pub last_op: __u8,
++pub ops_len: __u8,
++pub resv: __u16,
++pub resv2: [__u32; 3usize],
++pub ops: __IncompleteArrayField<io_uring_probe_op>,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub struct io_uring_restriction {
++pub opcode: __u16,
++pub __bindgen_anon_1: io_uring_restriction__bindgen_ty_1,
++pub resv: __u8,
++pub resv2: [__u32; 3usize],
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct io_uring_buf {
++pub addr: __u64,
++pub len: __u32,
++pub bid: __u16,
++pub resv: __u16,
++}
++#[repr(C)]
++pub struct io_uring_buf_ring {
++pub __bindgen_anon_1: io_uring_buf_ring__bindgen_ty_1,
++}
++#[repr(C)]
++pub struct io_uring_buf_ring__bindgen_ty_1 {
++pub __bindgen_anon_1: __BindgenUnionField<io_uring_buf_ring__bindgen_ty_1__bindgen_ty_1>,
++pub __bindgen_anon_2: __BindgenUnionField<io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2>,
++pub bindgen_union_field: [u64; 2usize],
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_1 {
++pub resv1: __u64,
++pub resv2: __u32,
++pub resv3: __u16,
++pub tail: __u16,
++}
++#[repr(C)]
++#[derive(Debug)]
++pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2 {
++pub __empty_bufs: io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1,
++pub bufs: __IncompleteArrayField<io_uring_buf>,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 {}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct io_uring_buf_reg {
++pub ring_addr: __u64,
++pub ring_entries: __u32,
++pub bgid: __u16,
++pub pad: __u16,
++pub resv: [__u64; 3usize],
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct io_uring_getevents_arg {
++pub sigmask: __u64,
++pub sigmask_sz: __u32,
++pub pad: __u32,
++pub ts: __u64,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct io_uring_sync_cancel_reg {
++pub addr: __u64,
++pub fd: __s32,
++pub flags: __u32,
++pub timeout: __kernel_timespec,
++pub pad: [__u64; 4usize],
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct io_uring_file_index_range {
++pub off: __u32,
++pub len: __u32,
++pub resv: __u64,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct io_uring_recvmsg_out {
++pub namelen: __u32,
++pub controllen: __u32,
++pub payloadlen: __u32,
++pub flags: __u32,
++}
++pub const NR_OPEN: u32 = 1024;
++pub const NGROUPS_MAX: u32 = 65536;
++pub const ARG_MAX: u32 = 131072;
++pub const LINK_MAX: u32 = 127;
++pub const MAX_CANON: u32 = 255;
++pub const MAX_INPUT: u32 = 255;
++pub const NAME_MAX: u32 = 255;
++pub const PATH_MAX: u32 = 4096;
++pub const PIPE_BUF: u32 = 4096;
++pub const XATTR_NAME_MAX: u32 = 255;
++pub const XATTR_SIZE_MAX: u32 = 65536;
++pub const XATTR_LIST_MAX: u32 = 65536;
++pub const RTSIG_MAX: u32 = 32;
++pub const _IOC_SIZEBITS: u32 = 13;
++pub const _IOC_DIRBITS: u32 = 3;
++pub const _IOC_NONE: u32 = 1;
++pub const _IOC_READ: u32 = 2;
++pub const _IOC_WRITE: u32 = 4;
++pub const _IOC_NRBITS: u32 = 8;
++pub const _IOC_TYPEBITS: u32 = 8;
++pub const _IOC_NRMASK: u32 = 255;
++pub const _IOC_TYPEMASK: u32 = 255;
++pub const _IOC_SIZEMASK: u32 = 8191;
++pub const _IOC_DIRMASK: u32 = 7;
++pub const _IOC_NRSHIFT: u32 = 0;
++pub const _IOC_TYPESHIFT: u32 = 8;
++pub const _IOC_SIZESHIFT: u32 = 16;
++pub const _IOC_DIRSHIFT: u32 = 29;
++pub const IOC_IN: u32 = 2147483648;
++pub const IOC_OUT: u32 = 1073741824;
++pub const IOC_INOUT: u32 = 3221225472;
++pub const IOCSIZE_MASK: u32 = 536805376;
++pub const IOCSIZE_SHIFT: u32 = 16;
++pub const _MIPS_ISA_MIPS1: u32 = 1;
++pub const _MIPS_ISA_MIPS2: u32 = 2;
++pub const _MIPS_ISA_MIPS3: u32 = 3;
++pub const _MIPS_ISA_MIPS4: u32 = 4;
++pub const _MIPS_ISA_MIPS5: u32 = 5;
++pub const _MIPS_ISA_MIPS32: u32 = 6;
++pub const _MIPS_ISA_MIPS64: u32 = 7;
++pub const _MIPS_SIM_ABI32: u32 = 1;
++pub const _MIPS_SIM_NABI32: u32 = 2;
++pub const _MIPS_SIM_ABI64: u32 = 3;
++pub const FSCRYPT_POLICY_FLAGS_PAD_4: u32 = 0;
++pub const FSCRYPT_POLICY_FLAGS_PAD_8: u32 = 1;
++pub const FSCRYPT_POLICY_FLAGS_PAD_16: u32 = 2;
++pub const FSCRYPT_POLICY_FLAGS_PAD_32: u32 = 3;
++pub const FSCRYPT_POLICY_FLAGS_PAD_MASK: u32 = 3;
++pub const FSCRYPT_POLICY_FLAG_DIRECT_KEY: u32 = 4;
++pub const FSCRYPT_POLICY_FLAG_IV_INO_LBLK_64: u32 = 8;
++pub const FSCRYPT_POLICY_FLAG_IV_INO_LBLK_32: u32 = 16;
++pub const FSCRYPT_MODE_AES_256_XTS: u32 = 1;
++pub const FSCRYPT_MODE_AES_256_CTS: u32 = 4;
++pub const FSCRYPT_MODE_AES_128_CBC: u32 = 5;
++pub const FSCRYPT_MODE_AES_128_CTS: u32 = 6;
++pub const FSCRYPT_MODE_SM4_XTS: u32 = 7;
++pub const FSCRYPT_MODE_SM4_CTS: u32 = 8;
++pub const FSCRYPT_MODE_ADIANTUM: u32 = 9;
++pub const FSCRYPT_MODE_AES_256_HCTR2: u32 = 10;
++pub const FSCRYPT_POLICY_V1: u32 = 0;
++pub const FSCRYPT_KEY_DESCRIPTOR_SIZE: u32 = 8;
++pub const FSCRYPT_KEY_DESC_PREFIX: &[u8; 9] = b"fscrypt:\0";
++pub const FSCRYPT_KEY_DESC_PREFIX_SIZE: u32 = 8;
++pub const FSCRYPT_MAX_KEY_SIZE: u32 = 64;
++pub const FSCRYPT_POLICY_V2: u32 = 2;
++pub const FSCRYPT_KEY_IDENTIFIER_SIZE: u32 = 16;
++pub const FSCRYPT_KEY_SPEC_TYPE_DESCRIPTOR: u32 = 1;
++pub const FSCRYPT_KEY_SPEC_TYPE_IDENTIFIER: u32 = 2;
++pub const FSCRYPT_KEY_REMOVAL_STATUS_FLAG_FILES_BUSY: u32 = 1;
++pub const FSCRYPT_KEY_REMOVAL_STATUS_FLAG_OTHER_USERS: u32 = 2;
++pub const FSCRYPT_KEY_STATUS_ABSENT: u32 = 1;
++pub const FSCRYPT_KEY_STATUS_PRESENT: u32 = 2;
++pub const FSCRYPT_KEY_STATUS_INCOMPLETELY_REMOVED: u32 = 3;
++pub const FSCRYPT_KEY_STATUS_FLAG_ADDED_BY_SELF: u32 = 1;
++pub const FS_KEY_DESCRIPTOR_SIZE: u32 = 8;
++pub const FS_POLICY_FLAGS_PAD_4: u32 = 0;
++pub const FS_POLICY_FLAGS_PAD_8: u32 = 1;
++pub const FS_POLICY_FLAGS_PAD_16: u32 = 2;
++pub const FS_POLICY_FLAGS_PAD_32: u32 = 3;
++pub const FS_POLICY_FLAGS_PAD_MASK: u32 = 3;
++pub const FS_POLICY_FLAG_DIRECT_KEY: u32 = 4;
++pub const FS_POLICY_FLAGS_VALID: u32 = 7;
++pub const FS_ENCRYPTION_MODE_INVALID: u32 = 0;
++pub const FS_ENCRYPTION_MODE_AES_256_XTS: u32 = 1;
++pub const FS_ENCRYPTION_MODE_AES_256_GCM: u32 = 2;
++pub const FS_ENCRYPTION_MODE_AES_256_CBC: u32 = 3;
++pub const FS_ENCRYPTION_MODE_AES_256_CTS: u32 = 4;
++pub const FS_ENCRYPTION_MODE_AES_128_CBC: u32 = 5;
++pub const FS_ENCRYPTION_MODE_AES_128_CTS: u32 = 6;
++pub const FS_ENCRYPTION_MODE_ADIANTUM: u32 = 9;
++pub const FS_KEY_DESC_PREFIX: &[u8; 9] = b"fscrypt:\0";
++pub const FS_KEY_DESC_PREFIX_SIZE: u32 = 8;
++pub const FS_MAX_KEY_SIZE: u32 = 64;
++pub const MS_RDONLY: u32 = 1;
++pub const MS_NOSUID: u32 = 2;
++pub const MS_NODEV: u32 = 4;
++pub const MS_NOEXEC: u32 = 8;
++pub const MS_SYNCHRONOUS: u32 = 16;
++pub const MS_REMOUNT: u32 = 32;
++pub const MS_MANDLOCK: u32 = 64;
++pub const MS_DIRSYNC: u32 = 128;
++pub const MS_NOSYMFOLLOW: u32 = 256;
++pub const MS_NOATIME: u32 = 1024;
++pub const MS_NODIRATIME: u32 = 2048;
++pub const MS_BIND: u32 = 4096;
++pub const MS_MOVE: u32 = 8192;
++pub const MS_REC: u32 = 16384;
++pub const MS_VERBOSE: u32 = 32768;
++pub const MS_SILENT: u32 = 32768;
++pub const MS_POSIXACL: u32 = 65536;
++pub const MS_UNBINDABLE: u32 = 131072;
++pub const MS_PRIVATE: u32 = 262144;
++pub const MS_SLAVE: u32 = 524288;
++pub const MS_SHARED: u32 = 1048576;
++pub const MS_RELATIME: u32 = 2097152;
++pub const MS_KERNMOUNT: u32 = 4194304;
++pub const MS_I_VERSION: u32 = 8388608;
++pub const MS_STRICTATIME: u32 = 16777216;
++pub const MS_LAZYTIME: u32 = 33554432;
++pub const MS_SUBMOUNT: u32 = 67108864;
++pub const MS_NOREMOTELOCK: u32 = 134217728;
++pub const MS_NOSEC: u32 = 268435456;
++pub const MS_BORN: u32 = 536870912;
++pub const MS_ACTIVE: u32 = 1073741824;
++pub const MS_NOUSER: u32 = 2147483648;
++pub const MS_RMT_MASK: u32 = 41943121;
++pub const MS_MGC_VAL: u32 = 3236757504;
++pub const MS_MGC_MSK: u32 = 4294901760;
++pub const OPEN_TREE_CLONE: u32 = 1;
++pub const MOVE_MOUNT_F_SYMLINKS: u32 = 1;
++pub const MOVE_MOUNT_F_AUTOMOUNTS: u32 = 2;
++pub const MOVE_MOUNT_F_EMPTY_PATH: u32 = 4;
++pub const MOVE_MOUNT_T_SYMLINKS: u32 = 16;
++pub const MOVE_MOUNT_T_AUTOMOUNTS: u32 = 32;
++pub const MOVE_MOUNT_T_EMPTY_PATH: u32 = 64;
++pub const MOVE_MOUNT_SET_GROUP: u32 = 256;
++pub const MOVE_MOUNT__MASK: u32 = 375;
++pub const FSOPEN_CLOEXEC: u32 = 1;
++pub const FSPICK_CLOEXEC: u32 = 1;
++pub const FSPICK_SYMLINK_NOFOLLOW: u32 = 2;
++pub const FSPICK_NO_AUTOMOUNT: u32 = 4;
++pub const FSPICK_EMPTY_PATH: u32 = 8;
++pub const FSMOUNT_CLOEXEC: u32 = 1;
++pub const MOUNT_ATTR_RDONLY: u32 = 1;
++pub const MOUNT_ATTR_NOSUID: u32 = 2;
++pub const MOUNT_ATTR_NODEV: u32 = 4;
++pub const MOUNT_ATTR_NOEXEC: u32 = 8;
++pub const MOUNT_ATTR__ATIME: u32 = 112;
++pub const MOUNT_ATTR_RELATIME: u32 = 0;
++pub const MOUNT_ATTR_NOATIME: u32 = 16;
++pub const MOUNT_ATTR_STRICTATIME: u32 = 32;
++pub const MOUNT_ATTR_NODIRATIME: u32 = 128;
++pub const MOUNT_ATTR_IDMAP: u32 = 1048576;
++pub const MOUNT_ATTR_NOSYMFOLLOW: u32 = 2097152;
++pub const MOUNT_ATTR_SIZE_VER0: u32 = 32;
++pub const INR_OPEN_CUR: u32 = 1024;
++pub const INR_OPEN_MAX: u32 = 4096;
++pub const BLOCK_SIZE_BITS: u32 = 10;
++pub const BLOCK_SIZE: u32 = 1024;
++pub const SEEK_SET: u32 = 0;
++pub const SEEK_CUR: u32 = 1;
++pub const SEEK_END: u32 = 2;
++pub const SEEK_DATA: u32 = 3;
++pub const SEEK_HOLE: u32 = 4;
++pub const SEEK_MAX: u32 = 4;
++pub const RENAME_NOREPLACE: u32 = 1;
++pub const RENAME_EXCHANGE: u32 = 2;
++pub const RENAME_WHITEOUT: u32 = 4;
++pub const FILE_DEDUPE_RANGE_SAME: u32 = 0;
++pub const FILE_DEDUPE_RANGE_DIFFERS: u32 = 1;
++pub const NR_FILE: u32 = 8192;
++pub const FS_XFLAG_REALTIME: u32 = 1;
++pub const FS_XFLAG_PREALLOC: u32 = 2;
++pub const FS_XFLAG_IMMUTABLE: u32 = 8;
++pub const FS_XFLAG_APPEND: u32 = 16;
++pub const FS_XFLAG_SYNC: u32 = 32;
++pub const FS_XFLAG_NOATIME: u32 = 64;
++pub const FS_XFLAG_NODUMP: u32 = 128;
++pub const FS_XFLAG_RTINHERIT: u32 = 256;
++pub const FS_XFLAG_PROJINHERIT: u32 = 512;
++pub const FS_XFLAG_NOSYMLINKS: u32 = 1024;
++pub const FS_XFLAG_EXTSIZE: u32 = 2048;
++pub const FS_XFLAG_EXTSZINHERIT: u32 = 4096;
++pub const FS_XFLAG_NODEFRAG: u32 = 8192;
++pub const FS_XFLAG_FILESTREAM: u32 = 16384;
++pub const FS_XFLAG_DAX: u32 = 32768;
++pub const FS_XFLAG_COWEXTSIZE: u32 = 65536;
++pub const FS_XFLAG_HASATTR: u32 = 2147483648;
++pub const BMAP_IOCTL: u32 = 1;
++pub const FSLABEL_MAX: u32 = 256;
++pub const FS_SECRM_FL: u32 = 1;
++pub const FS_UNRM_FL: u32 = 2;
++pub const FS_COMPR_FL: u32 = 4;
++pub const FS_SYNC_FL: u32 = 8;
++pub const FS_IMMUTABLE_FL: u32 = 16;
++pub const FS_APPEND_FL: u32 = 32;
++pub const FS_NODUMP_FL: u32 = 64;
++pub const FS_NOATIME_FL: u32 = 128;
++pub const FS_DIRTY_FL: u32 = 256;
++pub const FS_COMPRBLK_FL: u32 = 512;
++pub const FS_NOCOMP_FL: u32 = 1024;
++pub const FS_ENCRYPT_FL: u32 = 2048;
++pub const FS_BTREE_FL: u32 = 4096;
++pub const FS_INDEX_FL: u32 = 4096;
++pub const FS_IMAGIC_FL: u32 = 8192;
++pub const FS_JOURNAL_DATA_FL: u32 = 16384;
++pub const FS_NOTAIL_FL: u32 = 32768;
++pub const FS_DIRSYNC_FL: u32 = 65536;
++pub const FS_TOPDIR_FL: u32 = 131072;
++pub const FS_HUGE_FILE_FL: u32 = 262144;
++pub const FS_EXTENT_FL: u32 = 524288;
++pub const FS_VERITY_FL: u32 = 1048576;
++pub const FS_EA_INODE_FL: u32 = 2097152;
++pub const FS_EOFBLOCKS_FL: u32 = 4194304;
++pub const FS_NOCOW_FL: u32 = 8388608;
++pub const FS_DAX_FL: u32 = 33554432;
++pub const FS_INLINE_DATA_FL: u32 = 268435456;
++pub const FS_PROJINHERIT_FL: u32 = 536870912;
++pub const FS_CASEFOLD_FL: u32 = 1073741824;
++pub const FS_RESERVED_FL: u32 = 2147483648;
++pub const FS_FL_USER_VISIBLE: u32 = 253951;
++pub const FS_FL_USER_MODIFIABLE: u32 = 229631;
++pub const SYNC_FILE_RANGE_WAIT_BEFORE: u32 = 1;
++pub const SYNC_FILE_RANGE_WRITE: u32 = 2;
++pub const SYNC_FILE_RANGE_WAIT_AFTER: u32 = 4;
++pub const SYNC_FILE_RANGE_WRITE_AND_WAIT: u32 = 7;
++pub const IORING_FILE_INDEX_ALLOC: i32 = -1;
++pub const IORING_SETUP_IOPOLL: u32 = 1;
++pub const IORING_SETUP_SQPOLL: u32 = 2;
++pub const IORING_SETUP_SQ_AFF: u32 = 4;
++pub const IORING_SETUP_CQSIZE: u32 = 8;
++pub const IORING_SETUP_CLAMP: u32 = 16;
++pub const IORING_SETUP_ATTACH_WQ: u32 = 32;
++pub const IORING_SETUP_R_DISABLED: u32 = 64;
++pub const IORING_SETUP_SUBMIT_ALL: u32 = 128;
++pub const IORING_SETUP_COOP_TASKRUN: u32 = 256;
++pub const IORING_SETUP_TASKRUN_FLAG: u32 = 512;
++pub const IORING_SETUP_SQE128: u32 = 1024;
++pub const IORING_SETUP_CQE32: u32 = 2048;
++pub const IORING_SETUP_SINGLE_ISSUER: u32 = 4096;
++pub const IORING_SETUP_DEFER_TASKRUN: u32 = 8192;
++pub const IORING_URING_CMD_FIXED: u32 = 1;
++pub const IORING_FSYNC_DATASYNC: u32 = 1;
++pub const IORING_TIMEOUT_ABS: u32 = 1;
++pub const IORING_TIMEOUT_UPDATE: u32 = 2;
++pub const IORING_TIMEOUT_BOOTTIME: u32 = 4;
++pub const IORING_TIMEOUT_REALTIME: u32 = 8;
++pub const IORING_LINK_TIMEOUT_UPDATE: u32 = 16;
++pub const IORING_TIMEOUT_ETIME_SUCCESS: u32 = 32;
++pub const IORING_TIMEOUT_CLOCK_MASK: u32 = 12;
++pub const IORING_TIMEOUT_UPDATE_MASK: u32 = 18;
++pub const SPLICE_F_FD_IN_FIXED: u32 = 2147483648;
++pub const IORING_POLL_ADD_MULTI: u32 = 1;
++pub const IORING_POLL_UPDATE_EVENTS: u32 = 2;
++pub const IORING_POLL_UPDATE_USER_DATA: u32 = 4;
++pub const IORING_POLL_ADD_LEVEL: u32 = 8;
++pub const IORING_ASYNC_CANCEL_ALL: u32 = 1;
++pub const IORING_ASYNC_CANCEL_FD: u32 = 2;
++pub const IORING_ASYNC_CANCEL_ANY: u32 = 4;
++pub const IORING_ASYNC_CANCEL_FD_FIXED: u32 = 8;
++pub const IORING_RECVSEND_POLL_FIRST: u32 = 1;
++pub const IORING_RECV_MULTISHOT: u32 = 2;
++pub const IORING_RECVSEND_FIXED_BUF: u32 = 4;
++pub const IORING_SEND_ZC_REPORT_USAGE: u32 = 8;
++pub const IORING_NOTIF_USAGE_ZC_COPIED: u32 = 2147483648;
++pub const IORING_ACCEPT_MULTISHOT: u32 = 1;
++pub const IORING_MSG_RING_CQE_SKIP: u32 = 1;
++pub const IORING_MSG_RING_FLAGS_PASS: u32 = 2;
++pub const IORING_CQE_F_BUFFER: u32 = 1;
++pub const IORING_CQE_F_MORE: u32 = 2;
++pub const IORING_CQE_F_SOCK_NONEMPTY: u32 = 4;
++pub const IORING_CQE_F_NOTIF: u32 = 8;
++pub const IORING_OFF_SQ_RING: u32 = 0;
++pub const IORING_OFF_CQ_RING: u32 = 134217728;
++pub const IORING_OFF_SQES: u32 = 268435456;
++pub const IORING_SQ_NEED_WAKEUP: u32 = 1;
++pub const IORING_SQ_CQ_OVERFLOW: u32 = 2;
++pub const IORING_SQ_TASKRUN: u32 = 4;
++pub const IORING_CQ_EVENTFD_DISABLED: u32 = 1;
++pub const IORING_ENTER_GETEVENTS: u32 = 1;
++pub const IORING_ENTER_SQ_WAKEUP: u32 = 2;
++pub const IORING_ENTER_SQ_WAIT: u32 = 4;
++pub const IORING_ENTER_EXT_ARG: u32 = 8;
++pub const IORING_ENTER_REGISTERED_RING: u32 = 16;
++pub const IORING_FEAT_SINGLE_MMAP: u32 = 1;
++pub const IORING_FEAT_NODROP: u32 = 2;
++pub const IORING_FEAT_SUBMIT_STABLE: u32 = 4;
++pub const IORING_FEAT_RW_CUR_POS: u32 = 8;
++pub const IORING_FEAT_CUR_PERSONALITY: u32 = 16;
++pub const IORING_FEAT_FAST_POLL: u32 = 32;
++pub const IORING_FEAT_POLL_32BITS: u32 = 64;
++pub const IORING_FEAT_SQPOLL_NONFIXED: u32 = 128;
++pub const IORING_FEAT_EXT_ARG: u32 = 256;
++pub const IORING_FEAT_NATIVE_WORKERS: u32 = 512;
++pub const IORING_FEAT_RSRC_TAGS: u32 = 1024;
++pub const IORING_FEAT_CQE_SKIP: u32 = 2048;
++pub const IORING_FEAT_LINKED_FILE: u32 = 4096;
++pub const IORING_FEAT_REG_REG_RING: u32 = 8192;
++pub const IORING_RSRC_REGISTER_SPARSE: u32 = 1;
++pub const IORING_REGISTER_FILES_SKIP: i32 = -2;
++pub const IO_URING_OP_SUPPORTED: u32 = 1;
++pub const IORING_SETUP_NO_MMAP: u32 = 16384;
++pub const IORING_SETUP_REGISTERED_FD_ONLY: u32 = 32768;
++pub const IORING_SETUP_NO_SQARRAY: u32 = 65536;
++pub const IOSQE_FIXED_FILE_BIT: _bindgen_ty_1 = _bindgen_ty_1::IOSQE_FIXED_FILE_BIT;
++pub const IOSQE_IO_DRAIN_BIT: _bindgen_ty_1 = _bindgen_ty_1::IOSQE_IO_DRAIN_BIT;
++pub const IOSQE_IO_LINK_BIT: _bindgen_ty_1 = _bindgen_ty_1::IOSQE_IO_LINK_BIT;
++pub const IOSQE_IO_HARDLINK_BIT: _bindgen_ty_1 = _bindgen_ty_1::IOSQE_IO_HARDLINK_BIT;
++pub const IOSQE_ASYNC_BIT: _bindgen_ty_1 = _bindgen_ty_1::IOSQE_ASYNC_BIT;
++pub const IOSQE_BUFFER_SELECT_BIT: _bindgen_ty_1 = _bindgen_ty_1::IOSQE_BUFFER_SELECT_BIT;
++pub const IOSQE_CQE_SKIP_SUCCESS_BIT: _bindgen_ty_1 = _bindgen_ty_1::IOSQE_CQE_SKIP_SUCCESS_BIT;
++pub const IORING_MSG_DATA: _bindgen_ty_2 = _bindgen_ty_2::IORING_MSG_DATA;
++pub const IORING_MSG_SEND_FD: _bindgen_ty_2 = _bindgen_ty_2::IORING_MSG_SEND_FD;
++pub const IORING_CQE_BUFFER_SHIFT: _bindgen_ty_3 = _bindgen_ty_3::IORING_CQE_BUFFER_SHIFT;
++pub const IORING_REGISTER_BUFFERS: _bindgen_ty_4 = _bindgen_ty_4::IORING_REGISTER_BUFFERS;
++pub const IORING_UNREGISTER_BUFFERS: _bindgen_ty_4 = _bindgen_ty_4::IORING_UNREGISTER_BUFFERS;
++pub const IORING_REGISTER_FILES: _bindgen_ty_4 = _bindgen_ty_4::IORING_REGISTER_FILES;
++pub const IORING_UNREGISTER_FILES: _bindgen_ty_4 = _bindgen_ty_4::IORING_UNREGISTER_FILES;
++pub const IORING_REGISTER_EVENTFD: _bindgen_ty_4 = _bindgen_ty_4::IORING_REGISTER_EVENTFD;
++pub const IORING_UNREGISTER_EVENTFD: _bindgen_ty_4 = _bindgen_ty_4::IORING_UNREGISTER_EVENTFD;
++pub const IORING_REGISTER_FILES_UPDATE: _bindgen_ty_4 = _bindgen_ty_4::IORING_REGISTER_FILES_UPDATE;
++pub const IORING_REGISTER_EVENTFD_ASYNC: _bindgen_ty_4 = _bindgen_ty_4::IORING_REGISTER_EVENTFD_ASYNC;
++pub const IORING_REGISTER_PROBE: _bindgen_ty_4 = _bindgen_ty_4::IORING_REGISTER_PROBE;
++pub const IORING_REGISTER_PERSONALITY: _bindgen_ty_4 = _bindgen_ty_4::IORING_REGISTER_PERSONALITY;
++pub const IORING_UNREGISTER_PERSONALITY: _bindgen_ty_4 = _bindgen_ty_4::IORING_UNREGISTER_PERSONALITY;
++pub const IORING_REGISTER_RESTRICTIONS: _bindgen_ty_4 = _bindgen_ty_4::IORING_REGISTER_RESTRICTIONS;
++pub const IORING_REGISTER_ENABLE_RINGS: _bindgen_ty_4 = _bindgen_ty_4::IORING_REGISTER_ENABLE_RINGS;
++pub const IORING_REGISTER_FILES2: _bindgen_ty_4 = _bindgen_ty_4::IORING_REGISTER_FILES2;
++pub const IORING_REGISTER_FILES_UPDATE2: _bindgen_ty_4 = _bindgen_ty_4::IORING_REGISTER_FILES_UPDATE2;
++pub const IORING_REGISTER_BUFFERS2: _bindgen_ty_4 = _bindgen_ty_4::IORING_REGISTER_BUFFERS2;
++pub const IORING_REGISTER_BUFFERS_UPDATE: _bindgen_ty_4 = _bindgen_ty_4::IORING_REGISTER_BUFFERS_UPDATE;
++pub const IORING_REGISTER_IOWQ_AFF: _bindgen_ty_4 = _bindgen_ty_4::IORING_REGISTER_IOWQ_AFF;
++pub const IORING_UNREGISTER_IOWQ_AFF: _bindgen_ty_4 = _bindgen_ty_4::IORING_UNREGISTER_IOWQ_AFF;
++pub const IORING_REGISTER_IOWQ_MAX_WORKERS: _bindgen_ty_4 = _bindgen_ty_4::IORING_REGISTER_IOWQ_MAX_WORKERS;
++pub const IORING_REGISTER_RING_FDS: _bindgen_ty_4 = _bindgen_ty_4::IORING_REGISTER_RING_FDS;
++pub const IORING_UNREGISTER_RING_FDS: _bindgen_ty_4 = _bindgen_ty_4::IORING_UNREGISTER_RING_FDS;
++pub const IORING_REGISTER_PBUF_RING: _bindgen_ty_4 = _bindgen_ty_4::IORING_REGISTER_PBUF_RING;
++pub const IORING_UNREGISTER_PBUF_RING: _bindgen_ty_4 = _bindgen_ty_4::IORING_UNREGISTER_PBUF_RING;
++pub const IORING_REGISTER_SYNC_CANCEL: _bindgen_ty_4 = _bindgen_ty_4::IORING_REGISTER_SYNC_CANCEL;
++pub const IORING_REGISTER_FILE_ALLOC_RANGE: _bindgen_ty_4 = _bindgen_ty_4::IORING_REGISTER_FILE_ALLOC_RANGE;
++pub const IORING_REGISTER_LAST: _bindgen_ty_4 = _bindgen_ty_4::IORING_REGISTER_LAST;
++pub const IORING_REGISTER_USE_REGISTERED_RING: _bindgen_ty_4 = _bindgen_ty_4::IORING_REGISTER_USE_REGISTERED_RING;
++pub const IO_WQ_BOUND: _bindgen_ty_5 = _bindgen_ty_5::IO_WQ_BOUND;
++pub const IO_WQ_UNBOUND: _bindgen_ty_5 = _bindgen_ty_5::IO_WQ_UNBOUND;
++pub const IORING_RESTRICTION_REGISTER_OP: _bindgen_ty_6 = _bindgen_ty_6::IORING_RESTRICTION_REGISTER_OP;
++pub const IORING_RESTRICTION_SQE_OP: _bindgen_ty_6 = _bindgen_ty_6::IORING_RESTRICTION_SQE_OP;
++pub const IORING_RESTRICTION_SQE_FLAGS_ALLOWED: _bindgen_ty_6 = _bindgen_ty_6::IORING_RESTRICTION_SQE_FLAGS_ALLOWED;
++pub const IORING_RESTRICTION_SQE_FLAGS_REQUIRED: _bindgen_ty_6 = _bindgen_ty_6::IORING_RESTRICTION_SQE_FLAGS_REQUIRED;
++pub const IORING_RESTRICTION_LAST: _bindgen_ty_6 = _bindgen_ty_6::IORING_RESTRICTION_LAST;
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum fsconfig_command {
++FSCONFIG_SET_FLAG = 0,
++FSCONFIG_SET_STRING = 1,
++FSCONFIG_SET_BINARY = 2,
++FSCONFIG_SET_PATH = 3,
++FSCONFIG_SET_PATH_EMPTY = 4,
++FSCONFIG_SET_FD = 5,
++FSCONFIG_CMD_CREATE = 6,
++FSCONFIG_CMD_RECONFIGURE = 7,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_1 {
++IOSQE_FIXED_FILE_BIT = 0,
++IOSQE_IO_DRAIN_BIT = 1,
++IOSQE_IO_LINK_BIT = 2,
++IOSQE_IO_HARDLINK_BIT = 3,
++IOSQE_ASYNC_BIT = 4,
++IOSQE_BUFFER_SELECT_BIT = 5,
++IOSQE_CQE_SKIP_SUCCESS_BIT = 6,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum io_uring_op {
++IORING_OP_NOP = 0,
++IORING_OP_READV = 1,
++IORING_OP_WRITEV = 2,
++IORING_OP_FSYNC = 3,
++IORING_OP_READ_FIXED = 4,
++IORING_OP_WRITE_FIXED = 5,
++IORING_OP_POLL_ADD = 6,
++IORING_OP_POLL_REMOVE = 7,
++IORING_OP_SYNC_FILE_RANGE = 8,
++IORING_OP_SENDMSG = 9,
++IORING_OP_RECVMSG = 10,
++IORING_OP_TIMEOUT = 11,
++IORING_OP_TIMEOUT_REMOVE = 12,
++IORING_OP_ACCEPT = 13,
++IORING_OP_ASYNC_CANCEL = 14,
++IORING_OP_LINK_TIMEOUT = 15,
++IORING_OP_CONNECT = 16,
++IORING_OP_FALLOCATE = 17,
++IORING_OP_OPENAT = 18,
++IORING_OP_CLOSE = 19,
++IORING_OP_FILES_UPDATE = 20,
++IORING_OP_STATX = 21,
++IORING_OP_READ = 22,
++IORING_OP_WRITE = 23,
++IORING_OP_FADVISE = 24,
++IORING_OP_MADVISE = 25,
++IORING_OP_SEND = 26,
++IORING_OP_RECV = 27,
++IORING_OP_OPENAT2 = 28,
++IORING_OP_EPOLL_CTL = 29,
++IORING_OP_SPLICE = 30,
++IORING_OP_PROVIDE_BUFFERS = 31,
++IORING_OP_REMOVE_BUFFERS = 32,
++IORING_OP_TEE = 33,
++IORING_OP_SHUTDOWN = 34,
++IORING_OP_RENAMEAT = 35,
++IORING_OP_UNLINKAT = 36,
++IORING_OP_MKDIRAT = 37,
++IORING_OP_SYMLINKAT = 38,
++IORING_OP_LINKAT = 39,
++IORING_OP_MSG_RING = 40,
++IORING_OP_FSETXATTR = 41,
++IORING_OP_SETXATTR = 42,
++IORING_OP_FGETXATTR = 43,
++IORING_OP_GETXATTR = 44,
++IORING_OP_SOCKET = 45,
++IORING_OP_URING_CMD = 46,
++IORING_OP_SEND_ZC = 47,
++IORING_OP_SENDMSG_ZC = 48,
++IORING_OP_LAST = 49,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_2 {
++IORING_MSG_DATA = 0,
++IORING_MSG_SEND_FD = 1,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_3 {
++IORING_CQE_BUFFER_SHIFT = 16,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_4 {
++IORING_REGISTER_BUFFERS = 0,
++IORING_UNREGISTER_BUFFERS = 1,
++IORING_REGISTER_FILES = 2,
++IORING_UNREGISTER_FILES = 3,
++IORING_REGISTER_EVENTFD = 4,
++IORING_UNREGISTER_EVENTFD = 5,
++IORING_REGISTER_FILES_UPDATE = 6,
++IORING_REGISTER_EVENTFD_ASYNC = 7,
++IORING_REGISTER_PROBE = 8,
++IORING_REGISTER_PERSONALITY = 9,
++IORING_UNREGISTER_PERSONALITY = 10,
++IORING_REGISTER_RESTRICTIONS = 11,
++IORING_REGISTER_ENABLE_RINGS = 12,
++IORING_REGISTER_FILES2 = 13,
++IORING_REGISTER_FILES_UPDATE2 = 14,
++IORING_REGISTER_BUFFERS2 = 15,
++IORING_REGISTER_BUFFERS_UPDATE = 16,
++IORING_REGISTER_IOWQ_AFF = 17,
++IORING_UNREGISTER_IOWQ_AFF = 18,
++IORING_REGISTER_IOWQ_MAX_WORKERS = 19,
++IORING_REGISTER_RING_FDS = 20,
++IORING_UNREGISTER_RING_FDS = 21,
++IORING_REGISTER_PBUF_RING = 22,
++IORING_UNREGISTER_PBUF_RING = 23,
++IORING_REGISTER_SYNC_CANCEL = 24,
++IORING_REGISTER_FILE_ALLOC_RANGE = 25,
++IORING_REGISTER_LAST = 26,
++IORING_REGISTER_USE_REGISTERED_RING = 2147483648,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_5 {
++IO_WQ_BOUND = 0,
++IO_WQ_UNBOUND = 1,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_6 {
++IORING_RESTRICTION_REGISTER_OP = 0,
++IORING_RESTRICTION_SQE_OP = 1,
++IORING_RESTRICTION_SQE_FLAGS_ALLOWED = 2,
++IORING_RESTRICTION_SQE_FLAGS_REQUIRED = 3,
++IORING_RESTRICTION_LAST = 4,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub union fscrypt_get_policy_ex_arg__bindgen_ty_1 {
++pub version: __u8,
++pub v1: fscrypt_policy_v1,
++pub v2: fscrypt_policy_v2,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub union fscrypt_key_specifier__bindgen_ty_1 {
++pub __reserved: [__u8; 32usize],
++pub descriptor: [__u8; 8usize],
++pub identifier: [__u8; 16usize],
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub union io_uring_sqe__bindgen_ty_1 {
++pub off: __u64,
++pub addr2: __u64,
++pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_1__bindgen_ty_1,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub union io_uring_sqe__bindgen_ty_2 {
++pub addr: __u64,
++pub splice_off_in: __u64,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub union io_uring_sqe__bindgen_ty_3 {
++pub rw_flags: __kernel_rwf_t,
++pub fsync_flags: __u32,
++pub poll_events: __u16,
++pub poll32_events: __u32,
++pub sync_range_flags: __u32,
++pub msg_flags: __u32,
++pub timeout_flags: __u32,
++pub accept_flags: __u32,
++pub cancel_flags: __u32,
++pub open_flags: __u32,
++pub statx_flags: __u32,
++pub fadvise_advice: __u32,
++pub splice_flags: __u32,
++pub rename_flags: __u32,
++pub unlink_flags: __u32,
++pub hardlink_flags: __u32,
++pub xattr_flags: __u32,
++pub msg_ring_flags: __u32,
++pub uring_cmd_flags: __u32,
++}
++#[repr(C, packed)]
++#[derive(Copy, Clone)]
++pub union io_uring_sqe__bindgen_ty_4 {
++pub buf_index: __u16,
++pub buf_group: __u16,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub union io_uring_sqe__bindgen_ty_5 {
++pub splice_fd_in: __s32,
++pub file_index: __u32,
++pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_5__bindgen_ty_1,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub union io_uring_restriction__bindgen_ty_1 {
++pub register_op: __u8,
++pub sqe_op: __u8,
++pub sqe_flags: __u8,
++}
++impl<T> __IncompleteArrayField<T> {
++#[inline]
++pub const fn new() -> Self {
++__IncompleteArrayField(::core::marker::PhantomData, [])
++}
++#[inline]
++pub fn as_ptr(&self) -> *const T {
++self as *const _ as *const T
++}
++#[inline]
++pub fn as_mut_ptr(&mut self) -> *mut T {
++self as *mut _ as *mut T
++}
++#[inline]
++pub unsafe fn as_slice(&self, len: usize) -> &[T] {
++::core::slice::from_raw_parts(self.as_ptr(), len)
++}
++#[inline]
++pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
++::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
++}
++}
++impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
++fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
++fmt.write_str("__IncompleteArrayField")
++}
++}
++impl<T> __BindgenUnionField<T> {
++#[inline]
++pub const fn new() -> Self {
++__BindgenUnionField(::core::marker::PhantomData)
++}
++#[inline]
++pub unsafe fn as_ref(&self) -> &T {
++::core::mem::transmute(self)
++}
++#[inline]
++pub unsafe fn as_mut(&mut self) -> &mut T {
++::core::mem::transmute(self)
++}
++}
++impl<T> ::core::default::Default for __BindgenUnionField<T> {
++#[inline]
++fn default() -> Self {
++Self::new()
++}
++}
++impl<T> ::core::clone::Clone for __BindgenUnionField<T> {
++#[inline]
++fn clone(&self) -> Self {
++Self::new()
++}
++}
++impl<T> ::core::marker::Copy for __BindgenUnionField<T> {}
++impl<T> ::core::fmt::Debug for __BindgenUnionField<T> {
++fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
++fmt.write_str("__BindgenUnionField")
++}
++}
++impl<T> ::core::hash::Hash for __BindgenUnionField<T> {
++fn hash<H: ::core::hash::Hasher>(&self, _state: &mut H) {}
++}
++impl<T> ::core::cmp::PartialEq for __BindgenUnionField<T> {
++fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
++true
++}
++}
++impl<T> ::core::cmp::Eq for __BindgenUnionField<T> {}
+diff --git a/vendor/linux-raw-sys-0.4.14/src/sw_64/ioctl.rs b/vendor/linux-raw-sys-0.4.14/src/sw_64/ioctl.rs
+new file mode 100644
+index 00000000000..592285b3772
+--- /dev/null
++++ b/vendor/linux-raw-sys-0.4.14/src/sw_64/ioctl.rs
+@@ -0,0 +1,1600 @@
++/* automatically generated by rust-bindgen 0.66.1 */
++
++pub const FIONREAD: u32 = 18047;
++pub const FIONBIO: u32 = 26238;
++pub const FIOCLEX: u32 = 26113;
++pub const FIONCLEX: u32 = 26114;
++pub const FIOASYNC: u32 = 26237;
++pub const FIOQSIZE: u32 = 26239;
++pub const TCXONC: u32 = 21510;
++pub const TCFLSH: u32 = 21511;
++pub const TIOCSCTTY: u32 = 21632;
++pub const TIOCSPGRP: u32 = 2147775606;
++pub const TIOCOUTQ: u32 = 29810;
++pub const TIOCSTI: u32 = 21618;
++pub const TIOCSWINSZ: u32 = 2148037735;
++pub const TIOCMGET: u32 = 29725;
++pub const TIOCMBIS: u32 = 29723;
++pub const TIOCMBIC: u32 = 29724;
++pub const TIOCMSET: u32 = 29722;
++pub const TIOCSSOFTCAR: u32 = 21634;
++pub const TIOCLINUX: u32 = 21635;
++pub const TIOCCONS: u32 = 2147775608;
++pub const TIOCSSERIAL: u32 = 21637;
++pub const TIOCPKT: u32 = 21616;
++pub const TIOCNOTTY: u32 = 21617;
++pub const TIOCSETD: u32 = 29697;
++pub const TIOCSBRK: u32 = 21543;
++pub const TIOCCBRK: u32 = 21544;
++pub const TIOCSPTLCK: u32 = 2147767345;
++pub const TIOCSIG: u32 = 2147767350;
++pub const TIOCVHANGUP: u32 = 21559;
++pub const TIOCSERCONFIG: u32 = 21640;
++pub const TIOCSERGWILD: u32 = 21641;
++pub const TIOCSERSWILD: u32 = 21642;
++pub const TIOCSLCKTRMIOS: u32 = 21644;
++pub const TIOCSERGSTRUCT: u32 = 21645;
++pub const TIOCSERGETLSR: u32 = 21646;
++pub const TIOCSERGETMULTI: u32 = 21647;
++pub const TIOCSERSETMULTI: u32 = 21648;
++pub const TIOCMIWAIT: u32 = 21649;
++pub const TCGETS: u32 = 21517;
++pub const TCGETA: u32 = 21505;
++pub const TCSBRK: u32 = 21509;
++pub const TCSBRKP: u32 = 21638;
++pub const TCSETA: u32 = 21506;
++pub const TCSETAF: u32 = 21508;
++pub const TCSETAW: u32 = 21507;
++pub const TIOCEXCL: u32 = 29709;
++pub const TIOCNXCL: u32 = 29710;
++pub const TIOCGDEV: u32 = 1074025522;
++pub const TIOCGEXCL: u32 = 1074025536;
++pub const TIOCGICOUNT: u32 = 21650;
++pub const TIOCGLCKTRMIOS: u32 = 21643;
++pub const TIOCGPGRP: u32 = 1074033783;
++pub const TIOCGPKT: u32 = 1074025528;
++pub const TIOCGPTLCK: u32 = 1074025529;
++pub const TIOCGPTN: u32 = 1074025520;
++pub const TIOCGPTPEER: u32 = 536892481;
++pub const TIOCGSERIAL: u32 = 21636;
++pub const TIOCGSID: u32 = 29718;
++pub const TIOCGSOFTCAR: u32 = 21633;
++pub const TIOCGWINSZ: u32 = 1074295912;
++pub const TCGETS2: u32 = 1076909098;
++pub const TCSETS: u32 = 21518;
++pub const TCSETS2: u32 = 2150650923;
++pub const TCSETSF: u32 = 21520;
++pub const TCSETSF2: u32 = 2150650925;
++pub const TCSETSW: u32 = 21519;
++pub const TCSETSW2: u32 = 2150650924;
++pub const TIOCGETD: u32 = 29696;
++pub const TIOCGETP: u32 = 29704;
++pub const TIOCGLTC: u32 = 29812;
++pub const MTIOCGET: u32 = 1077439746;
++pub const BLKSSZGET: u32 = 536875624;
++pub const BLKPBSZGET: u32 = 536875643;
++pub const BLKROSET: u32 = 536875613;
++pub const BLKROGET: u32 = 536875614;
++pub const BLKRRPART: u32 = 536875615;
++pub const BLKGETSIZE: u32 = 536875616;
++pub const BLKFLSBUF: u32 = 536875617;
++pub const BLKRASET: u32 = 536875618;
++pub const BLKRAGET: u32 = 536875619;
++pub const BLKFRASET: u32 = 536875620;
++pub const BLKFRAGET: u32 = 536875621;
++pub const BLKSECTSET: u32 = 536875622;
++pub const BLKSECTGET: u32 = 536875623;
++pub const BLKPG: u32 = 536875625;
++pub const BLKBSZGET: u32 = 1074270832;
++pub const BLKBSZSET: u32 = 2148012657;
++pub const BLKGETSIZE64: u32 = 1074270834;
++pub const BLKTRACESETUP: u32 = 3225948787;
++pub const BLKTRACESTART: u32 = 536875636;
++pub const BLKTRACESTOP: u32 = 536875637;
++pub const BLKTRACETEARDOWN: u32 = 536875638;
++pub const BLKDISCARD: u32 = 536875639;
++pub const BLKIOMIN: u32 = 536875640;
++pub const BLKIOOPT: u32 = 536875641;
++pub const BLKALIGNOFF: u32 = 536875642;
++pub const BLKDISCARDZEROES: u32 = 536875644;
++pub const BLKSECDISCARD: u32 = 536875645;
++pub const BLKROTATIONAL: u32 = 536875646;
++pub const BLKZEROOUT: u32 = 536875647;
++pub const FIEMAP_MAX_OFFSET: i32 = -1;
++pub const FIEMAP_FLAG_SYNC: u32 = 1;
++pub const FIEMAP_FLAG_XATTR: u32 = 2;
++pub const FIEMAP_FLAG_CACHE: u32 = 4;
++pub const FIEMAP_FLAGS_COMPAT: u32 = 3;
++pub const FIEMAP_EXTENT_LAST: u32 = 1;
++pub const FIEMAP_EXTENT_UNKNOWN: u32 = 2;
++pub const FIEMAP_EXTENT_DELALLOC: u32 = 4;
++pub const FIEMAP_EXTENT_ENCODED: u32 = 8;
++pub const FIEMAP_EXTENT_DATA_ENCRYPTED: u32 = 128;
++pub const FIEMAP_EXTENT_NOT_ALIGNED: u32 = 256;
++pub const FIEMAP_EXTENT_DATA_INLINE: u32 = 512;
++pub const FIEMAP_EXTENT_DATA_TAIL: u32 = 1024;
++pub const FIEMAP_EXTENT_UNWRITTEN: u32 = 2048;
++pub const FIEMAP_EXTENT_MERGED: u32 = 4096;
++pub const FIEMAP_EXTENT_SHARED: u32 = 8192;
++pub const UFFDIO_REGISTER: u32 = 3223366144;
++pub const UFFDIO_UNREGISTER: u32 = 1074833921;
++pub const UFFDIO_WAKE: u32 = 1074833922;
++pub const UFFDIO_COPY: u32 = 3223890435;
++pub const UFFDIO_ZEROPAGE: u32 = 3223366148;
++pub const UFFDIO_WRITEPROTECT: u32 = 3222841862;
++pub const UFFDIO_API: u32 = 3222841919;
++pub const NS_GET_USERNS: u32 = 536917761;
++pub const NS_GET_PARENT: u32 = 536917762;
++pub const NS_GET_NSTYPE: u32 = 536917763;
++pub const KDGETLED: u32 = 19249;
++pub const KDSETLED: u32 = 19250;
++pub const KDGKBLED: u32 = 19300;
++pub const KDSKBLED: u32 = 19301;
++pub const KDGKBTYPE: u32 = 19251;
++pub const KDADDIO: u32 = 19252;
++pub const KDDELIO: u32 = 19253;
++pub const KDENABIO: u32 = 19254;
++pub const KDDISABIO: u32 = 19255;
++pub const KDSETMODE: u32 = 19258;
++pub const KDGETMODE: u32 = 19259;
++pub const KDMKTONE: u32 = 19248;
++pub const KIOCSOUND: u32 = 19247;
++pub const GIO_CMAP: u32 = 19312;
++pub const PIO_CMAP: u32 = 19313;
++pub const GIO_FONT: u32 = 19296;
++pub const GIO_FONTX: u32 = 19307;
++pub const PIO_FONT: u32 = 19297;
++pub const PIO_FONTX: u32 = 19308;
++pub const PIO_FONTRESET: u32 = 19309;
++pub const GIO_SCRNMAP: u32 = 19264;
++pub const GIO_UNISCRNMAP: u32 = 19305;
++pub const PIO_SCRNMAP: u32 = 19265;
++pub const PIO_UNISCRNMAP: u32 = 19306;
++pub const GIO_UNIMAP: u32 = 19302;
++pub const PIO_UNIMAP: u32 = 19303;
++pub const PIO_UNIMAPCLR: u32 = 19304;
++pub const KDGKBMODE: u32 = 19268;
++pub const KDSKBMODE: u32 = 19269;
++pub const KDGKBMETA: u32 = 19298;
++pub const KDSKBMETA: u32 = 19299;
++pub const KDGKBENT: u32 = 19270;
++pub const KDSKBENT: u32 = 19271;
++pub const KDGKBSENT: u32 = 19272;
++pub const KDSKBSENT: u32 = 19273;
++pub const KDGKBDIACR: u32 = 19274;
++pub const KDGETKEYCODE: u32 = 19276;
++pub const KDSETKEYCODE: u32 = 19277;
++pub const KDSIGACCEPT: u32 = 19278;
++pub const VT_OPENQRY: u32 = 22016;
++pub const VT_GETMODE: u32 = 22017;
++pub const VT_SETMODE: u32 = 22018;
++pub const VT_GETSTATE: u32 = 22019;
++pub const VT_RELDISP: u32 = 22021;
++pub const VT_ACTIVATE: u32 = 22022;
++pub const VT_WAITACTIVE: u32 = 22023;
++pub const VT_DISALLOCATE: u32 = 22024;
++pub const VT_RESIZE: u32 = 22025;
++pub const VT_RESIZEX: u32 = 22026;
++pub const FIOSETOWN: u32 = 2147772028;
++pub const FIOGETOWN: u32 = 1074030203;
++pub const SIOCATMARK: u32 = 1074033415;
++pub const SIOCGSTAMP: u32 = 35078;
++pub const TIOCINQ: u32 = 18047;
++pub const SIOCADDRT: u32 = 35083;
++pub const SIOCDELRT: u32 = 35084;
++pub const SIOCGIFNAME: u32 = 35088;
++pub const SIOCSIFLINK: u32 = 35089;
++pub const SIOCGIFCONF: u32 = 35090;
++pub const SIOCGIFFLAGS: u32 = 35091;
++pub const SIOCSIFFLAGS: u32 = 35092;
++pub const SIOCGIFADDR: u32 = 35093;
++pub const SIOCSIFADDR: u32 = 35094;
++pub const SIOCGIFDSTADDR: u32 = 35095;
++pub const SIOCSIFDSTADDR: u32 = 35096;
++pub const SIOCGIFBRDADDR: u32 = 35097;
++pub const SIOCSIFBRDADDR: u32 = 35098;
++pub const SIOCGIFNETMASK: u32 = 35099;
++pub const SIOCSIFNETMASK: u32 = 35100;
++pub const SIOCGIFMETRIC: u32 = 35101;
++pub const SIOCSIFMETRIC: u32 = 35102;
++pub const SIOCGIFMEM: u32 = 35103;
++pub const SIOCSIFMEM: u32 = 35104;
++pub const SIOCGIFMTU: u32 = 35105;
++pub const SIOCSIFMTU: u32 = 35106;
++pub const SIOCSIFHWADDR: u32 = 35108;
++pub const SIOCGIFENCAP: u32 = 35109;
++pub const SIOCSIFENCAP: u32 = 35110;
++pub const SIOCGIFHWADDR: u32 = 35111;
++pub const SIOCGIFSLAVE: u32 = 35113;
++pub const SIOCSIFSLAVE: u32 = 35120;
++pub const SIOCADDMULTI: u32 = 35121;
++pub const SIOCDELMULTI: u32 = 35122;
++pub const SIOCDARP: u32 = 35155;
++pub const SIOCGARP: u32 = 35156;
++pub const SIOCSARP: u32 = 35157;
++pub const SIOCDRARP: u32 = 35168;
++pub const SIOCGRARP: u32 = 35169;
++pub const SIOCSRARP: u32 = 35170;
++pub const SIOCGIFMAP: u32 = 35184;
++pub const SIOCSIFMAP: u32 = 35185;
++pub const SIOCRTMSG: u32 = 35085;
++pub const SIOCSIFNAME: u32 = 35107;
++pub const SIOCGIFINDEX: u32 = 35123;
++pub const SIOGIFINDEX: u32 = 35123;
++pub const SIOCSIFPFLAGS: u32 = 35124;
++pub const SIOCGIFPFLAGS: u32 = 35125;
++pub const SIOCDIFADDR: u32 = 35126;
++pub const SIOCSIFHWBROADCAST: u32 = 35127;
++pub const SIOCGIFCOUNT: u32 = 35128;
++pub const SIOCGIFBR: u32 = 35136;
++pub const SIOCSIFBR: u32 = 35137;
++pub const SIOCGIFTXQLEN: u32 = 35138;
++pub const SIOCSIFTXQLEN: u32 = 35139;
++pub const SIOCADDDLCI: u32 = 35200;
++pub const SIOCDELDLCI: u32 = 35201;
++pub const SIOCDEVPRIVATE: u32 = 35312;
++pub const SIOCPROTOPRIVATE: u32 = 35296;
++pub const FIBMAP: u32 = 536870913;
++pub const FIGETBSZ: u32 = 536870914;
++pub const FIFREEZE: u32 = 3221510263;
++pub const FITHAW: u32 = 3221510264;
++pub const FITRIM: u32 = 3222820985;
++pub const FICLONE: u32 = 2147783689;
++pub const FICLONERANGE: u32 = 2149618701;
++pub const FIDEDUPERANGE: u32 = 3222836278;
++pub const FS_IOC_GETFLAGS: u32 = 1074292225;
++pub const FS_IOC_SETFLAGS: u32 = 2148034050;
++pub const FS_IOC_GETVERSION: u32 = 1074296321;
++pub const FS_IOC_SETVERSION: u32 = 2148038146;
++pub const FS_IOC_FIEMAP: u32 = 3223348747;
++pub const FS_IOC32_GETFLAGS: u32 = 1074030081;
++pub const FS_IOC32_SETFLAGS: u32 = 2147771906;
++pub const FS_IOC32_GETVERSION: u32 = 1074034177;
++pub const FS_IOC32_SETVERSION: u32 = 2147776002;
++pub const FS_IOC_FSGETXATTR: u32 = 1075599391;
++pub const FS_IOC_FSSETXATTR: u32 = 2149341216;
++pub const FS_IOC_GETFSLABEL: u32 = 1090556977;
++pub const FS_IOC_SETFSLABEL: u32 = 2164298802;
++pub const EXT4_IOC_GETVERSION: u32 = 1074292227;
++pub const EXT4_IOC_SETVERSION: u32 = 2148034052;
++pub const EXT4_IOC_GETVERSION_OLD: u32 = 1074296321;
++pub const EXT4_IOC_SETVERSION_OLD: u32 = 2148038146;
++pub const EXT4_IOC_GETRSVSZ: u32 = 1074292229;
++pub const EXT4_IOC_SETRSVSZ: u32 = 2148034054;
++pub const EXT4_IOC_GROUP_EXTEND: u32 = 2148034055;
++pub const EXT4_IOC_MIGRATE: u32 = 536897033;
++pub const EXT4_IOC_ALLOC_DA_BLKS: u32 = 536897036;
++pub const EXT4_IOC_RESIZE_FS: u32 = 2148034064;
++pub const EXT4_IOC_SWAP_BOOT: u32 = 536897041;
++pub const EXT4_IOC_PRECACHE_EXTENTS: u32 = 536897042;
++pub const EXT4_IOC_CLEAR_ES_CACHE: u32 = 536897064;
++pub const EXT4_IOC_GETSTATE: u32 = 2147771945;
++pub const EXT4_IOC_GET_ES_CACHE: u32 = 3223348778;
++pub const EXT4_IOC_CHECKPOINT: u32 = 2147771947;
++pub const EXT4_IOC_SHUTDOWN: u32 = 1074026621;
++pub const EXT4_IOC32_GETVERSION: u32 = 1074030083;
++pub const EXT4_IOC32_SETVERSION: u32 = 2147771908;
++pub const EXT4_IOC32_GETRSVSZ: u32 = 1074030085;
++pub const EXT4_IOC32_SETRSVSZ: u32 = 2147771910;
++pub const EXT4_IOC32_GROUP_EXTEND: u32 = 2147771911;
++pub const EXT4_IOC32_GETVERSION_OLD: u32 = 1074034177;
++pub const EXT4_IOC32_SETVERSION_OLD: u32 = 2147776002;
++pub const VIDIOC_SUBDEV_QUERYSTD: u32 = 1074288191;
++pub const AUTOFS_DEV_IOCTL_CLOSEMOUNT: u32 = 3222836085;
++pub const LIRC_SET_SEND_CARRIER: u32 = 2147772691;
++pub const AUTOFS_IOC_PROTOSUBVER: u32 = 1074041703;
++pub const PTP_SYS_OFFSET_PRECISE: u32 = 3225435400;
++pub const FSI_SCOM_WRITE: u32 = 3223352066;
++pub const ATM_GETCIRANGE: u32 = 2148557194;
++pub const DMA_BUF_SET_NAME_B: u32 = 2148033025;
++pub const RIO_CM_EP_GET_LIST_SIZE: u32 = 3221512961;
++pub const TUNSETPERSIST: u32 = 2147767499;
++pub const FS_IOC_GET_ENCRYPTION_POLICY: u32 = 2148296213;
++pub const CEC_RECEIVE: u32 = 3224920326;
++pub const MGSL_IOCGPARAMS: u32 = 1076915457;
++pub const ENI_SETMULT: u32 = 2148557159;
++pub const RIO_GET_EVENT_MASK: u32 = 1074031886;
++pub const LIRC_GET_MAX_TIMEOUT: u32 = 1074030857;
++pub const KVM_SET_BOOT_CPU_ID: u32 = 536915576;
++pub const KVM_SET_MP_STATE: u32 = 2147790489;
++pub const KVM_GET_MP_STATE: u32 = 1074048664;
++pub const KVM_GET_API_VERSION: u32 = 536915456;
++pub const KVM_S390_GET_SKEYS: u32 = 2151722674;
++pub const KVM_SET_ONE_REG: u32 = 2148576940;
++pub const KVM_IRQ_LINE_STATUS: u32 = 3221794407;
++pub const KVM_SET_USER_MEMORY_REGION: u32 = 2149625414;
++pub const KVM_S390_INTERRUPT: u32 = 2148576916;
++pub const KVM_TPR_ACCESS_REPORTING: u32 = 3223891602;
++pub const KVM_GET_FPU: u32 = 1073786508;
++pub const KVM_ASSIGN_SET_MSIX_ENTRY: u32 = 2148576884;
++pub const KVM_MEMORY_ENCRYPT_REG_REGION: u32 = 1074835131;
++pub const KVM_S390_UCAS_MAP: u32 = 2149101136;
++pub const KVM_ASSIGN_SET_INTX_MASK: u32 = 2151722660;
++pub const KVM_MEMORY_ENCRYPT_OP: u32 = 3221794490;
++pub const KVM_CREATE_PIT2: u32 = 2151722615;
++pub const KVM_S390_VCPU_FAULT: u32 = 2148052562;
++pub const KVM_REGISTER_COALESCED_MMIO: u32 = 2148576871;
++pub const KVM_SET_VAPIC_ADDR: u32 = 2148052627;
++pub const KVM_CREATE_DEVICE: u32 = 3222056672;
++pub const KVM_GET_IRQCHIP: u32 = 3255348834;
++pub const KVM_TRANSLATE: u32 = 3222843013;
++pub const KVM_S390_SET_INITIAL_PSW: u32 = 2148576918;
++pub const KVM_X86_SETUP_MCE: u32 = 2148052636;
++pub const KVM_DEASSIGN_PCI_DEVICE: u32 = 2151722610;
++pub const KVM_XEN_HVM_SET_ATTR: u32 = 2152246985;
++pub const KVM_GET_CLOCK: u32 = 1076932220;
++pub const KVM_SET_FPU: u32 = 2147528333;
++pub const KVM_KVMCLOCK_CTRL: u32 = 536915629;
++pub const KVM_PPC_GET_PVINFO: u32 = 2155916961;
++pub const KVM_X86_GET_MCE_CAP_SUPPORTED: u32 = 1074310813;
++pub const KVM_S390_GET_IRQ_STATE: u32 = 2149625526;
++pub const KVM_GET_DEVICE_ATTR: u32 = 2149101282;
++pub const KVM_S390_INITIAL_RESET: u32 = 536915607;
++pub const KVM_SET_REGS: u32 = 2165878402;
++pub const KVM_GET_TSC_KHZ: u32 = 536915619;
++pub const KVM_CHECK_EXTENSION: u32 = 536915459;
++pub const KVM_PPC_RESIZE_HPT_COMMIT: u32 = 1074835118;
++pub const KVM_GET_DIRTY_LOG: u32 = 2148576834;
++pub const KVM_S390_SET_IRQ_STATE: u32 = 2149625525;
++pub const KVM_S390_NORMAL_RESET: u32 = 536915651;
++pub const KVM_SET_SIGNAL_MASK: u32 = 2147790475;
++pub const KVM_XEN_VCPU_SET_ATTR: u32 = 2152246987;
++pub const KVM_SET_GSI_ROUTING: u32 = 2148052586;
++pub const KVM_CREATE_VCPU: u32 = 536915521;
++pub const KVM_S390_UCAS_UNMAP: u32 = 2149101137;
++pub const KVM_S390_STORE_STATUS: u32 = 2148052629;
++pub const KVM_UNREGISTER_COALESCED_MMIO: u32 = 2148576872;
++pub const KVM_ASSIGN_DEV_IRQ: u32 = 2151722608;
++pub const KVM_S390_PV_COMMAND: u32 = 3223367365;
++pub const KVM_S390_ENABLE_SIE: u32 = 536915462;
++pub const KVM_CLEAR_DIRTY_LOG: u32 = 3222843072;
++pub const KVM_GET_ONE_REG: u32 = 2148576939;
++pub const KVM_ARM_SET_DEVICE_ADDR: u32 = 2148576939;
++pub const KVM_DIRTY_TLB: u32 = 2148576938;
++pub const KVM_NMI: u32 = 536915610;
++pub const KVM_HYPERV_EVENTFD: u32 = 2149101245;
++pub const KVM_S390_MEM_OP: u32 = 2151722673;
++pub const KVM_PPC_SVM_OFF: u32 = 536915635;
++pub const KVM_PPC_RESIZE_HPT_PREPARE: u32 = 1074835117;
++pub const KVM_INTERRUPT: u32 = 2147790470;
++pub const KVM_XEN_HVM_GET_ATTR: u32 = 3225988808;
++pub const KVM_GET_SREGS: u32 = 1073786499;
++pub const KVM_SET_IDENTITY_MAP_ADDR: u32 = 2148052552;
++pub const KVM_GET_REGS: u32 = 1092136577;
++pub const KVM_S390_GET_CMMA_BITS: u32 = 3223367352;
++pub const KVM_CREATE_IRQCHIP: u32 = 536915552;
++pub const KVM_ASSIGN_PCI_DEVICE: u32 = 1077980777;
++pub const KVM_SET_NR_MMU_PAGES: u32 = 536915524;
++pub const KVM_IOEVENTFD: u32 = 2151722617;
++pub const KVM_RUN: u32 = 536915584;
++pub const KVM_S390_SET_SKEYS: u32 = 2151722675;
++pub const KVM_SET_DEVICE_ATTR: u32 = 2149101281;
++pub const KVM_DEASSIGN_DEV_IRQ: u32 = 2151722613;
++pub const KVM_SMI: u32 = 536915639;
++pub const KVM_SET_TSS_ADDR: u32 = 536915527;
++pub const KVM_GET_NR_MMU_PAGES: u32 = 536915525;
++pub const KVM_XEN_VCPU_GET_ATTR: u32 = 3225988810;
++pub const KVM_REINJECT_CONTROL: u32 = 536915569;
++pub const KVM_HAS_DEVICE_ATTR: u32 = 2149101283;
++pub const KVM_IRQFD: u32 = 2149625462;
++pub const KVM_S390_SET_CMMA_BITS: u32 = 2149625529;
++pub const KVM_SET_IRQCHIP: u32 = 1107865187;
++pub const KVM_SIGNAL_MSI: u32 = 2149625509;
++pub const KVM_GET_VCPU_MMAP_SIZE: u32 = 536915460;
++pub const KVM_CREATE_VM: u32 = 536915457;
++pub const KVM_S390_CLEAR_RESET: u32 = 536915652;
++pub const KVM_RESET_DIRTY_RINGS: u32 = 536915655;
++pub const KVM_ASSIGN_SET_MSIX_NR: u32 = 2148052595;
++pub const KVM_CREATE_PIT: u32 = 536915556;
++pub const KVM_SET_GUEST_DEBUG: u32 = 2148052635;
++pub const KVM_GET_REG_LIST: u32 = 3221794480;
++pub const KVM_ARM_VCPU_FINALIZE: u32 = 2147790530;
++pub const KVM_SET_CLOCK: u32 = 2150674043;
++pub const KVM_PPC_ALLOCATE_HTAB: u32 = 3221532327;
++pub const KVM_PPC_GET_SMMU_INFO: u32 = 1112583846;
++pub const KVM_SET_TSC_KHZ: u32 = 536915618;
++pub const KVM_S390_IRQ: u32 = 2152246964;
++pub const KVM_ENABLE_CAP: u32 = 2154344099;
++pub const KVM_IRQ_LINE: u32 = 2148052577;
++pub const KVM_SET_SREGS: u32 = 2147528324;
++pub const KVM_MEMORY_ENCRYPT_UNREG_REGION: u32 = 1074835132;
++pub const KVM_GET_STATS_FD: u32 = 536915662;
++pub const USBDEVFS_CLAIMINTERFACE: u32 = 1074025743;
++pub const CHIOMOVE: u32 = 2148819713;
++pub const SONYPI_IOCGBATFLAGS: u32 = 1073837575;
++pub const BTRFS_IOC_SYNC: u32 = 536908808;
++pub const VIDIOC_TRY_FMT: u32 = 3234879040;
++pub const LIRC_SET_REC_MODE: u32 = 2147772690;
++pub const VIDIOC_DQEVENT: u32 = 1082676825;
++pub const RPMSG_DESTROY_EPT_IOCTL: u32 = 536917250;
++pub const UVCIOC_CTRL_MAP: u32 = 3227546912;
++pub const VHOST_SET_BACKEND_FEATURES: u32 = 2148052773;
++pub const VHOST_VSOCK_SET_GUEST_CID: u32 = 2148052832;
++pub const UI_SET_KEYBIT: u32 = 2147767653;
++pub const LIRC_SET_REC_TIMEOUT: u32 = 2147772696;
++pub const FS_IOC_GET_ENCRYPTION_KEY_STATUS: u32 = 3229640218;
++pub const BTRFS_IOC_TREE_SEARCH_V2: u32 = 3228603409;
++pub const VHOST_SET_VRING_BASE: u32 = 2148052754;
++pub const RIO_ENABLE_DOORBELL_RANGE: u32 = 2148035849;
++pub const VIDIOC_TRY_EXT_CTRLS: u32 = 3223344713;
++pub const LIRC_GET_REC_MODE: u32 = 1074030850;
++pub const PPGETTIME: u32 = 1074819221;
++pub const BTRFS_IOC_RM_DEV: u32 = 2415957003;
++pub const ATM_SETBACKEND: u32 = 2147639794;
++pub const FSL_HV_IOCTL_PARTITION_START: u32 = 3222318851;
++pub const FBIO_WAITEVENT: u32 = 536888968;
++pub const SWITCHTEC_IOCTL_PORT_TO_PFF: u32 = 3222034245;
++pub const NVME_IOCTL_IO_CMD: u32 = 3225964099;
++pub const IPMICTL_RECEIVE_MSG_TRUNC: u32 = 3224398091;
++pub const FDTWADDLE: u32 = 536871513;
++pub const NVME_IOCTL_SUBMIT_IO: u32 = 2150649410;
++pub const NILFS_IOCTL_SYNC: u32 = 1074294410;
++pub const VIDIOC_SUBDEV_S_DV_TIMINGS: u32 = 3229898327;
++pub const ASPEED_LPC_CTRL_IOCTL_GET_SIZE: u32 = 3222319616;
++pub const DM_DEV_STATUS: u32 = 3241737479;
++pub const TEE_IOC_CLOSE_SESSION: u32 = 1074045957;
++pub const NS_GETPSTAT: u32 = 3222298977;
++pub const UI_SET_PROPBIT: u32 = 2147767662;
++pub const TUNSETFILTEREBPF: u32 = 1074025697;
++pub const RIO_MPORT_MAINT_COMPTAG_SET: u32 = 2147773698;
++pub const AUTOFS_DEV_IOCTL_VERSION: u32 = 3222836081;
++pub const WDIOC_SETOPTIONS: u32 = 1074026244;
++pub const VHOST_SCSI_SET_ENDPOINT: u32 = 2162732864;
++pub const MGSL_IOCGTXIDLE: u32 = 536898819;
++pub const ATM_ADDLECSADDR: u32 = 2148557198;
++pub const FSL_HV_IOCTL_GETPROP: u32 = 3223891719;
++pub const FDGETPRM: u32 = 1075839492;
++pub const HIDIOCAPPLICATION: u32 = 536889346;
++pub const ENI_MEMDUMP: u32 = 2148557152;
++pub const PTP_SYS_OFFSET2: u32 = 2202025230;
++pub const VIDIOC_SUBDEV_G_DV_TIMINGS: u32 = 3229898328;
++pub const DMA_BUF_SET_NAME_A: u32 = 2147770881;
++pub const PTP_PIN_GETFUNC: u32 = 3227532550;
++pub const PTP_SYS_OFFSET_EXTENDED: u32 = 3300932873;
++pub const DFL_FPGA_PORT_UINT_SET_IRQ: u32 = 2148054600;
++pub const RTC_EPOCH_READ: u32 = 1074294797;
++pub const VIDIOC_SUBDEV_S_SELECTION: u32 = 3225441854;
++pub const VIDIOC_QUERY_EXT_CTRL: u32 = 3236451943;
++pub const ATM_GETLECSADDR: u32 = 2148557200;
++pub const FSL_HV_IOCTL_PARTITION_STOP: u32 = 3221794564;
++pub const SONET_GETDIAG: u32 = 1074028820;
++pub const ATMMPC_DATA: u32 = 536895961;
++pub const IPMICTL_UNREGISTER_FOR_CMD_CHANS: u32 = 1074555165;
++pub const HIDIOCGCOLLECTIONINDEX: u32 = 2149074960;
++pub const RPMSG_CREATE_EPT_IOCTL: u32 = 2150151425;
++pub const GPIOHANDLE_GET_LINE_VALUES_IOCTL: u32 = 3225465864;
++pub const UI_DEV_SETUP: u32 = 2153534723;
++pub const ISST_IF_IO_CMD: u32 = 2148072962;
++pub const RIO_MPORT_MAINT_READ_REMOTE: u32 = 1075342599;
++pub const VIDIOC_OMAP3ISP_HIST_CFG: u32 = 3224393412;
++pub const BLKGETNRZONES: u32 = 1074008709;
++pub const VIDIOC_G_MODULATOR: u32 = 3225703990;
++pub const VBG_IOCTL_WRITE_CORE_DUMP: u32 = 3223082515;
++pub const USBDEVFS_SETINTERFACE: u32 = 1074287876;
++pub const PPPIOCGCHAN: u32 = 1074033719;
++pub const EVIOCGVERSION: u32 = 1074021633;
++pub const VHOST_NET_SET_BACKEND: u32 = 2148052784;
++pub const USBDEVFS_REAPURBNDELAY: u32 = 2148029709;
++pub const RNDZAPENTCNT: u32 = 536891908;
++pub const VIDIOC_G_PARM: u32 = 3234616853;
++pub const TUNGETDEVNETNS: u32 = 536892643;
++pub const LIRC_SET_MEASURE_CARRIER_MODE: u32 = 2147772701;
++pub const VHOST_SET_VRING_ERR: u32 = 2148052770;
++pub const VDUSE_VQ_SETUP: u32 = 2149613844;
++pub const AUTOFS_IOC_SETTIMEOUT: u32 = 3221787492;
++pub const VIDIOC_S_FREQUENCY: u32 = 2150389305;
++pub const F2FS_IOC_SEC_TRIM_FILE: u32 = 2149119252;
++pub const FS_IOC_REMOVE_ENCRYPTION_KEY: u32 = 3225445912;
++pub const WDIOC_GETPRETIMEOUT: u32 = 1074026249;
++pub const USBDEVFS_DROP_PRIVILEGES: u32 = 2147767582;
++pub const BTRFS_IOC_SNAP_CREATE_V2: u32 = 2415957015;
++pub const VHOST_VSOCK_SET_RUNNING: u32 = 2147790689;
++pub const STP_SET_OPTIONS: u32 = 2148017410;
++pub const FBIO_RADEON_GET_MIRROR: u32 = 1074282499;
++pub const IVTVFB_IOC_DMA_FRAME: u32 = 2149078720;
++pub const IPMICTL_SEND_COMMAND: u32 = 1076390157;
++pub const VIDIOC_G_ENC_INDEX: u32 = 1209554508;
++pub const DFL_FPGA_FME_PORT_PR: u32 = 536917632;
++pub const CHIOSVOLTAG: u32 = 2150654738;
++pub const ATM_SETESIF: u32 = 2148557197;
++pub const FW_CDEV_IOC_SEND_RESPONSE: u32 = 2149065476;
++pub const PMU_IOC_GET_MODEL: u32 = 1074283011;
++pub const JSIOCGBTNMAP: u32 = 1140877876;
++pub const USBDEVFS_HUB_PORTINFO: u32 = 1082152211;
++pub const VBG_IOCTL_INTERRUPT_ALL_WAIT_FOR_EVENTS: u32 = 3222820363;
++pub const FDCLRPRM: u32 = 536871489;
++pub const BTRFS_IOC_SCRUB: u32 = 3288372251;
++pub const USBDEVFS_DISCONNECT: u32 = 536892694;
++pub const TUNSETVNETBE: u32 = 2147767518;
++pub const ATMTCP_REMOVE: u32 = 536895887;
++pub const VHOST_VDPA_GET_CONFIG: u32 = 1074311027;
++pub const PPPIOCGNPMODE: u32 = 3221779532;
++pub const FDGETDRVPRM: u32 = 1082130961;
++pub const TUNSETVNETLE: u32 = 2147767516;
++pub const PHN_SETREG: u32 = 2148036614;
++pub const PPPIOCDETACH: u32 = 2147775548;
++pub const MMTIMER_GETRES: u32 = 1074294017;
++pub const VIDIOC_SUBDEV_ENUMSTD: u32 = 3225966105;
++pub const PPGETFLAGS: u32 = 1074032794;
++pub const VDUSE_DEV_GET_FEATURES: u32 = 1074299153;
++pub const CAPI_MANUFACTURER_CMD: u32 = 3222291232;
++pub const VIDIOC_G_TUNER: u32 = 3226752541;
++pub const DM_TABLE_STATUS: u32 = 3241737484;
++pub const DM_DEV_ARM_POLL: u32 = 3241737488;
++pub const NE_CREATE_VM: u32 = 1074310688;
++pub const MEDIA_IOC_ENUM_LINKS: u32 = 3223878658;
++pub const F2FS_IOC_PRECACHE_EXTENTS: u32 = 536933647;
++pub const DFL_FPGA_PORT_DMA_MAP: u32 = 536917571;
++pub const MGSL_IOCGXCTRL: u32 = 536898838;
++pub const FW_CDEV_IOC_SEND_REQUEST: u32 = 2150114049;
++pub const SONYPI_IOCGBLUE: u32 = 1073837576;
++pub const F2FS_IOC_DECOMPRESS_FILE: u32 = 536933655;
++pub const I2OHTML: u32 = 3224398089;
++pub const VFIO_GET_API_VERSION: u32 = 536886116;
++pub const IDT77105_GETSTATZ: u32 = 2148557107;
++pub const I2OPARMSET: u32 = 3223873795;
++pub const TEE_IOC_CANCEL: u32 = 1074308100;
++pub const PTP_SYS_OFFSET_PRECISE2: u32 = 3225435409;
++pub const DFL_FPGA_PORT_RESET: u32 = 536917568;
++pub const PPPIOCGASYNCMAP: u32 = 1074033752;
++pub const EVIOCGKEYCODE_V2: u32 = 1076380932;
++pub const DM_DEV_SET_GEOMETRY: u32 = 3241737487;
++pub const HIDIOCSUSAGE: u32 = 2149074956;
++pub const FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE_ONCE: u32 = 2149065488;
++pub const PTP_EXTTS_REQUEST: u32 = 2148547842;
++pub const SWITCHTEC_IOCTL_EVENT_CTL: u32 = 3223869251;
++pub const WDIOC_SETPRETIMEOUT: u32 = 3221509896;
++pub const VHOST_SCSI_CLEAR_ENDPOINT: u32 = 2162732865;
++pub const JSIOCGAXES: u32 = 1073834513;
++pub const HIDIOCSFLAG: u32 = 2147764239;
++pub const PTP_PEROUT_REQUEST2: u32 = 2151169292;
++pub const PPWDATA: u32 = 2147577990;
++pub const PTP_CLOCK_GETCAPS: u32 = 1079000321;
++pub const FDGETMAXERRS: u32 = 1075053070;
++pub const TUNSETQUEUE: u32 = 2147767513;
++pub const PTP_ENABLE_PPS: u32 = 2147761412;
++pub const SIOCSIFATMTCP: u32 = 536895872;
++pub const CEC_ADAP_G_LOG_ADDRS: u32 = 1079795971;
++pub const ND_IOCTL_ARS_CAP: u32 = 3223342593;
++pub const NBD_SET_BLKSIZE: u32 = 536914689;
++pub const NBD_SET_TIMEOUT: u32 = 536914697;
++pub const VHOST_SCSI_GET_ABI_VERSION: u32 = 2147790658;
++pub const RIO_UNMAP_INBOUND: u32 = 2148035858;
++pub const ATM_QUERYLOOP: u32 = 2148557140;
++pub const DFL_FPGA_GET_API_VERSION: u32 = 536917504;
++pub const USBDEVFS_WAIT_FOR_RESUME: u32 = 536892707;
++pub const FBIO_CURSOR: u32 = 3228059144;
++pub const RNDCLEARPOOL: u32 = 536891910;
++pub const VIDIOC_QUERYSTD: u32 = 1074288191;
++pub const DMA_BUF_IOCTL_SYNC: u32 = 2148033024;
++pub const SCIF_RECV: u32 = 3222827783;
++pub const PTP_PIN_GETFUNC2: u32 = 3227532559;
++pub const FW_CDEV_IOC_ALLOCATE: u32 = 3223331586;
++pub const CEC_ADAP_G_CAPS: u32 = 3226231040;
++pub const VIDIOC_G_FBUF: u32 = 1076909578;
++pub const PTP_ENABLE_PPS2: u32 = 2147761421;
++pub const PCITEST_CLEAR_IRQ: u32 = 536891408;
++pub const IPMICTL_SET_GETS_EVENTS_CMD: u32 = 1074030864;
++pub const BTRFS_IOC_DEVICES_READY: u32 = 1342215207;
++pub const JSIOCGAXMAP: u32 = 1077963314;
++pub const FW_CDEV_IOC_GET_CYCLE_TIMER: u32 = 1074799372;
++pub const FW_CDEV_IOC_SET_ISO_CHANNELS: u32 = 2148541207;
++pub const RTC_WIE_OFF: u32 = 536899600;
++pub const PPGETMODE: u32 = 1074032792;
++pub const VIDIOC_DBG_G_REGISTER: u32 = 3224917584;
++pub const PTP_SYS_OFFSET: u32 = 2202025221;
++pub const BTRFS_IOC_SPACE_INFO: u32 = 3222311956;
++pub const VIDIOC_SUBDEV_ENUM_FRAME_SIZE: u32 = 3225441866;
++pub const ND_IOCTL_VENDOR: u32 = 3221769737;
++pub const SCIF_VREADFROM: u32 = 3223876364;
++pub const BTRFS_IOC_TRANS_START: u32 = 536908806;
++pub const INOTIFY_IOC_SETNEXTWD: u32 = 2147764480;
++pub const SNAPSHOT_GET_IMAGE_SIZE: u32 = 1074279182;
++pub const TUNDETACHFILTER: u32 = 2148553942;
++pub const ND_IOCTL_CLEAR_ERROR: u32 = 3223342596;
++pub const IOC_PR_CLEAR: u32 = 2148561101;
++pub const SCIF_READFROM: u32 = 3223876362;
++pub const PPPIOCGDEBUG: u32 = 1074033729;
++pub const BLKGETZONESZ: u32 = 1074008708;
++pub const HIDIOCGUSAGES: u32 = 3491514387;
++pub const SONYPI_IOCGTEMP: u32 = 1073837580;
++pub const UI_SET_MSCBIT: u32 = 2147767656;
++pub const APM_IOC_SUSPEND: u32 = 536887554;
++pub const BTRFS_IOC_TREE_SEARCH: u32 = 3489698833;
++pub const RTC_PLL_GET: u32 = 1075867665;
++pub const RIO_CM_EP_GET_LIST: u32 = 3221512962;
++pub const USBDEVFS_DISCSIGNAL: u32 = 1074812174;
++pub const LIRC_GET_MIN_TIMEOUT: u32 = 1074030856;
++pub const SWITCHTEC_IOCTL_EVENT_SUMMARY_LEGACY: u32 = 1100502850;
++pub const DM_TARGET_MSG: u32 = 3241737486;
++pub const SONYPI_IOCGBAT1REM: u32 = 1073903107;
++pub const EVIOCSFF: u32 = 2150647168;
++pub const TUNSETGROUP: u32 = 2147767502;
++pub const EVIOCGKEYCODE: u32 = 1074283780;
++pub const KCOV_REMOTE_ENABLE: u32 = 2149081958;
++pub const ND_IOCTL_GET_CONFIG_SIZE: u32 = 3222031876;
++pub const FDEJECT: u32 = 536871514;
++pub const TUNSETOFFLOAD: u32 = 2147767504;
++pub const PPPIOCCONNECT: u32 = 2147775546;
++pub const ATM_ADDADDR: u32 = 2148557192;
++pub const VDUSE_DEV_INJECT_CONFIG_IRQ: u32 = 536903955;
++pub const AUTOFS_DEV_IOCTL_ASKUMOUNT: u32 = 3222836093;
++pub const VHOST_VDPA_GET_STATUS: u32 = 1073852273;
++pub const CCISS_PASSTHRU: u32 = 3227009547;
++pub const MGSL_IOCCLRMODCOUNT: u32 = 536898831;
++pub const TEE_IOC_SUPPL_SEND: u32 = 1074832391;
++pub const ATMARPD_CTRL: u32 = 536895969;
++pub const UI_ABS_SETUP: u32 = 2149340420;
++pub const UI_DEV_DESTROY: u32 = 536892674;
++pub const BTRFS_IOC_QUOTA_CTL: u32 = 3222311976;
++pub const RTC_AIE_ON: u32 = 536899585;
++pub const AUTOFS_IOC_EXPIRE: u32 = 1091343205;
++pub const PPPIOCSDEBUG: u32 = 2147775552;
++pub const GPIO_V2_LINE_SET_VALUES_IOCTL: u32 = 3222320143;
++pub const PPPIOCSMRU: u32 = 2147775570;
++pub const CCISS_DEREGDISK: u32 = 536887820;
++pub const UI_DEV_CREATE: u32 = 536892673;
++pub const FUSE_DEV_IOC_CLONE: u32 = 1074062592;
++pub const BTRFS_IOC_START_SYNC: u32 = 1074304024;
++pub const NILFS_IOCTL_DELETE_CHECKPOINT: u32 = 2148036225;
++pub const SNAPSHOT_AVAIL_SWAP_SIZE: u32 = 1074279187;
++pub const DM_TABLE_CLEAR: u32 = 3241737482;
++pub const CCISS_GETINTINFO: u32 = 1074283010;
++pub const PPPIOCSASYNCMAP: u32 = 2147775575;
++pub const I2OEVTGET: u32 = 1080584459;
++pub const NVME_IOCTL_RESET: u32 = 536890948;
++pub const PPYIELD: u32 = 536899725;
++pub const NVME_IOCTL_IO64_CMD: u32 = 3226488392;
++pub const TUNSETCARRIER: u32 = 2147767522;
++pub const DM_DEV_WAIT: u32 = 3241737480;
++pub const RTC_WIE_ON: u32 = 536899599;
++pub const MEDIA_IOC_DEVICE_INFO: u32 = 3238034432;
++pub const RIO_CM_CHAN_CREATE: u32 = 3221381891;
++pub const MGSL_IOCSPARAMS: u32 = 2150657280;
++pub const RTC_SET_TIME: u32 = 2149871626;
++pub const VHOST_RESET_OWNER: u32 = 536915714;
++pub const IOC_OPAL_PSID_REVERT_TPR: u32 = 2164814056;
++pub const AUTOFS_DEV_IOCTL_OPENMOUNT: u32 = 3222836084;
++pub const UDF_GETEABLOCK: u32 = 1074293825;
++pub const VFIO_IOMMU_MAP_DMA: u32 = 536886129;
++pub const VIDIOC_SUBSCRIBE_EVENT: u32 = 2149602906;
++pub const HIDIOCGFLAG: u32 = 1074022414;
++pub const HIDIOCGUCODE: u32 = 3222816781;
++pub const VIDIOC_OMAP3ISP_AF_CFG: u32 = 3226228421;
++pub const DM_REMOVE_ALL: u32 = 3241737473;
++pub const ASPEED_LPC_CTRL_IOCTL_MAP: u32 = 2148577793;
++pub const CCISS_GETFIRMVER: u32 = 1074020872;
++pub const ND_IOCTL_ARS_START: u32 = 3223342594;
++pub const PPPIOCSMRRU: u32 = 2147775547;
++pub const CEC_ADAP_S_LOG_ADDRS: u32 = 3227279620;
++pub const RPROC_GET_SHUTDOWN_ON_RELEASE: u32 = 1074050818;
++pub const DMA_HEAP_IOCTL_ALLOC: u32 = 3222816768;
++pub const PPSETTIME: u32 = 2148561046;
++pub const RTC_ALM_READ: u32 = 1076129800;
++pub const VDUSE_SET_API_VERSION: u32 = 2148040961;
++pub const RIO_MPORT_MAINT_WRITE_REMOTE: u32 = 2149084424;
++pub const VIDIOC_SUBDEV_S_CROP: u32 = 3224917564;
++pub const USBDEVFS_CONNECT: u32 = 536892695;
++pub const SYNC_IOC_FILE_INFO: u32 = 3224911364;
++pub const ATMARP_MKIP: u32 = 536895970;
++pub const VFIO_IOMMU_SPAPR_TCE_GET_INFO: u32 = 536886128;
++pub const CCISS_GETHEARTBEAT: u32 = 1074020870;
++pub const ATM_RSTADDR: u32 = 2148557191;
++pub const NBD_SET_SIZE: u32 = 536914690;
++pub const UDF_GETVOLIDENT: u32 = 1074293826;
++pub const GPIO_V2_LINE_GET_VALUES_IOCTL: u32 = 3222320142;
++pub const MGSL_IOCSTXIDLE: u32 = 536898818;
++pub const FSL_HV_IOCTL_SETPROP: u32 = 3223891720;
++pub const BTRFS_IOC_GET_DEV_STATS: u32 = 3288896564;
++pub const PPRSTATUS: u32 = 1073836161;
++pub const MGSL_IOCTXENABLE: u32 = 536898820;
++pub const UDF_GETEASIZE: u32 = 1074031680;
++pub const NVME_IOCTL_ADMIN64_CMD: u32 = 3226488391;
++pub const VHOST_SET_OWNER: u32 = 536915713;
++pub const RIO_ALLOC_DMA: u32 = 3222826259;
++pub const RIO_CM_CHAN_ACCEPT: u32 = 3221775111;
++pub const I2OHRTGET: u32 = 3222825217;
++pub const ATM_SETCIRANGE: u32 = 2148557195;
++pub const HPET_IE_ON: u32 = 536897537;
++pub const PERF_EVENT_IOC_ID: u32 = 1074275335;
++pub const TUNSETSNDBUF: u32 = 2147767508;
++pub const PTP_PIN_SETFUNC: u32 = 2153790727;
++pub const PPPIOCDISCONN: u32 = 536900665;
++pub const VIDIOC_QUERYCTRL: u32 = 3225703972;
++pub const PPEXCL: u32 = 536899727;
++pub const PCITEST_MSI: u32 = 2147766275;
++pub const FDWERRORCLR: u32 = 536871510;
++pub const AUTOFS_IOC_FAIL: u32 = 536908641;
++pub const USBDEVFS_IOCTL: u32 = 3222295826;
++pub const VIDIOC_S_STD: u32 = 2148029976;
++pub const F2FS_IOC_RESIZE_FS: u32 = 2148070672;
++pub const SONET_SETDIAG: u32 = 3221512466;
++pub const BTRFS_IOC_DEFRAG: u32 = 2415956994;
++pub const CCISS_GETDRIVVER: u32 = 1074020873;
++pub const IPMICTL_GET_TIMING_PARMS_CMD: u32 = 1074293015;
++pub const HPET_IRQFREQ: u32 = 2148034566;
++pub const ATM_GETESI: u32 = 2148557189;
++pub const CCISS_GETLUNINFO: u32 = 1074545169;
++pub const AUTOFS_DEV_IOCTL_ISMOUNTPOINT: u32 = 3222836094;
++pub const TEE_IOC_SHM_ALLOC: u32 = 3222316033;
++pub const PERF_EVENT_IOC_SET_BPF: u32 = 2147755016;
++pub const UDMABUF_CREATE_LIST: u32 = 2148037955;
++pub const VHOST_SET_LOG_BASE: u32 = 2148052740;
++pub const ZATM_GETPOOL: u32 = 2148557153;
++pub const BR2684_SETFILT: u32 = 2149343632;
++pub const RNDGETPOOL: u32 = 1074287106;
++pub const PPS_GETPARAMS: u32 = 1074294945;
++pub const IOC_PR_RESERVE: u32 = 2148561097;
++pub const VIDIOC_TRY_DECODER_CMD: u32 = 3225966177;
++pub const RIO_CM_CHAN_CLOSE: u32 = 2147640068;
++pub const VIDIOC_DV_TIMINGS_CAP: u32 = 3230684772;
++pub const IOCTL_MEI_CONNECT_CLIENT_VTAG: u32 = 3222554628;
++pub const PMU_IOC_GET_BACKLIGHT: u32 = 1074283009;
++pub const USBDEVFS_GET_CAPABILITIES: u32 = 1074025754;
++pub const SCIF_WRITETO: u32 = 3223876363;
++pub const UDF_RELOCATE_BLOCKS: u32 = 3221777475;
++pub const FSL_HV_IOCTL_PARTITION_RESTART: u32 = 3221794561;
++pub const CCISS_REGNEWD: u32 = 536887822;
++pub const FAT_IOCTL_SET_ATTRIBUTES: u32 = 2147774993;
++pub const VIDIOC_CREATE_BUFS: u32 = 3238024796;
++pub const CAPI_GET_VERSION: u32 = 3222291207;
++pub const SWITCHTEC_IOCTL_EVENT_SUMMARY: u32 = 1155028802;
++pub const VFIO_EEH_PE_OP: u32 = 536886137;
++pub const FW_CDEV_IOC_CREATE_ISO_CONTEXT: u32 = 3223331592;
++pub const F2FS_IOC_RELEASE_COMPRESS_BLOCKS: u32 = 1074328850;
++pub const NBD_SET_SIZE_BLOCKS: u32 = 536914695;
++pub const IPMI_BMC_IOCTL_SET_SMS_ATN: u32 = 536916224;
++pub const ASPEED_P2A_CTRL_IOCTL_GET_MEMORY_CONFIG: u32 = 3222319873;
++pub const VIDIOC_S_AUDOUT: u32 = 2150913586;
++pub const VIDIOC_S_FMT: u32 = 3234878981;
++pub const PPPIOCATTACH: u32 = 2147775549;
++pub const VHOST_GET_VRING_BUSYLOOP_TIMEOUT: u32 = 2148052772;
++pub const FS_IOC_MEASURE_VERITY: u32 = 3221513862;
++pub const CCISS_BIG_PASSTHRU: u32 = 3227533842;
++pub const IPMICTL_SET_MY_LUN_CMD: u32 = 1074030867;
++pub const PCITEST_LEGACY_IRQ: u32 = 536891394;
++pub const USBDEVFS_SUBMITURB: u32 = 1077433610;
++pub const AUTOFS_IOC_READY: u32 = 536908640;
++pub const BTRFS_IOC_SEND: u32 = 2152240166;
++pub const VIDIOC_G_EXT_CTRLS: u32 = 3223344711;
++pub const JSIOCSBTNMAP: u32 = 2214619699;
++pub const PPPIOCSFLAGS: u32 = 2147775577;
++pub const NVRAM_INIT: u32 = 536899648;
++pub const RFKILL_IOCTL_NOINPUT: u32 = 536891905;
++pub const BTRFS_IOC_BALANCE: u32 = 2415957004;
++pub const FS_IOC_GETFSMAP: u32 = 3233830971;
++pub const IPMICTL_GET_MY_CHANNEL_LUN_CMD: u32 = 1074030875;
++pub const STP_POLICY_ID_GET: u32 = 1074799873;
++pub const PPSETFLAGS: u32 = 2147774619;
++pub const CEC_ADAP_S_PHYS_ADDR: u32 = 2147639554;
++pub const ATMTCP_CREATE: u32 = 536895886;
++pub const IPMI_BMC_IOCTL_FORCE_ABORT: u32 = 536916226;
++pub const PPPIOCGXASYNCMAP: u32 = 1075868752;
++pub const VHOST_SET_VRING_CALL: u32 = 2148052769;
++pub const LIRC_GET_FEATURES: u32 = 1074030848;
++pub const GSMIOC_DISABLE_NET: u32 = 536889091;
++pub const AUTOFS_IOC_CATATONIC: u32 = 536908642;
++pub const NBD_DO_IT: u32 = 536914691;
++pub const LIRC_SET_REC_CARRIER_RANGE: u32 = 2147772703;
++pub const IPMICTL_GET_MY_CHANNEL_ADDRESS_CMD: u32 = 1074030873;
++pub const EVIOCSCLOCKID: u32 = 2147763616;
++pub const USBDEVFS_FREE_STREAMS: u32 = 1074287901;
++pub const FSI_SCOM_RESET: u32 = 2147775235;
++pub const PMU_IOC_GRAB_BACKLIGHT: u32 = 1074283014;
++pub const VIDIOC_SUBDEV_S_FMT: u32 = 3227014661;
++pub const FDDEFPRM: u32 = 2149581379;
++pub const TEE_IOC_INVOKE: u32 = 1074832387;
++pub const USBDEVFS_BULK: u32 = 3222820098;
++pub const SCIF_VWRITETO: u32 = 3223876365;
++pub const SONYPI_IOCSBRT: u32 = 2147579392;
++pub const BTRFS_IOC_FILE_EXTENT_SAME: u32 = 3222836278;
++pub const RTC_PIE_ON: u32 = 536899589;
++pub const BTRFS_IOC_SCAN_DEV: u32 = 2415956996;
++pub const PPPIOCXFERUNIT: u32 = 536900686;
++pub const WDIOC_GETTIMEOUT: u32 = 1074026247;
++pub const BTRFS_IOC_SET_RECEIVED_SUBVOL: u32 = 3234370597;
++pub const DFL_FPGA_PORT_ERR_SET_IRQ: u32 = 2148054598;
++pub const FBIO_WAITFORVSYNC: u32 = 2147763744;
++pub const RTC_PIE_OFF: u32 = 536899590;
++pub const EVIOCGRAB: u32 = 2147763600;
++pub const PMU_IOC_SET_BACKLIGHT: u32 = 2148024834;
++pub const EVIOCGREP: u32 = 1074283779;
++pub const PERF_EVENT_IOC_MODIFY_ATTRIBUTES: u32 = 2148017163;
++pub const UFFDIO_CONTINUE: u32 = 3223366151;
++pub const VDUSE_GET_API_VERSION: u32 = 1074299136;
++pub const RTC_RD_TIME: u32 = 1076129801;
++pub const FDMSGOFF: u32 = 536871494;
++pub const IPMICTL_REGISTER_FOR_CMD_CHANS: u32 = 1074555164;
++pub const CAPI_GET_ERRCODE: u32 = 1073890081;
++pub const PCITEST_SET_IRQTYPE: u32 = 2147766280;
++pub const VIDIOC_SUBDEV_S_EDID: u32 = 3223868969;
++pub const MATROXFB_SET_OUTPUT_MODE: u32 = 2148036346;
++pub const RIO_DEV_ADD: u32 = 2149608727;
++pub const VIDIOC_ENUM_FREQ_BANDS: u32 = 3225441893;
++pub const FBIO_RADEON_SET_MIRROR: u32 = 2148024324;
++pub const PCITEST_GET_IRQTYPE: u32 = 536891401;
++pub const JSIOCGVERSION: u32 = 1074031105;
++pub const SONYPI_IOCSBLUE: u32 = 2147579401;
++pub const SNAPSHOT_PREF_IMAGE_SIZE: u32 = 536883986;
++pub const F2FS_IOC_GET_FEATURES: u32 = 1074066700;
++pub const SCIF_REG: u32 = 3223876360;
++pub const NILFS_IOCTL_CLEAN_SEGMENTS: u32 = 2155376264;
++pub const FW_CDEV_IOC_INITIATE_BUS_RESET: u32 = 2147754757;
++pub const RIO_WAIT_FOR_ASYNC: u32 = 2148035862;
++pub const VHOST_SET_VRING_NUM: u32 = 2148052752;
++pub const AUTOFS_DEV_IOCTL_PROTOVER: u32 = 3222836082;
++pub const RIO_FREE_DMA: u32 = 2148035860;
++pub const MGSL_IOCRXENABLE: u32 = 536898821;
++pub const IOCTL_VM_SOCKETS_GET_LOCAL_CID: u32 = 536872889;
++pub const IPMICTL_SET_TIMING_PARMS_CMD: u32 = 1074293014;
++pub const PPPIOCGL2TPSTATS: u32 = 1078490166;
++pub const PERF_EVENT_IOC_PERIOD: u32 = 2148017156;
++pub const PTP_PIN_SETFUNC2: u32 = 2153790736;
++pub const CHIOEXCHANGE: u32 = 2149344002;
++pub const NILFS_IOCTL_GET_SUINFO: u32 = 1075342980;
++pub const CEC_DQEVENT: u32 = 3226493191;
++pub const UI_SET_SWBIT: u32 = 2147767661;
++pub const VHOST_VDPA_SET_CONFIG: u32 = 2148052852;
++pub const TUNSETIFF: u32 = 2147767498;
++pub const CHIOPOSITION: u32 = 2148295427;
++pub const IPMICTL_SET_MAINTENANCE_MODE_CMD: u32 = 2147772703;
++pub const BTRFS_IOC_DEFAULT_SUBVOL: u32 = 2148045843;
++pub const RIO_UNMAP_OUTBOUND: u32 = 2150133008;
++pub const CAPI_CLR_FLAGS: u32 = 1074021157;
++pub const FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE_ONCE: u32 = 2149065487;
++pub const MATROXFB_GET_OUTPUT_CONNECTION: u32 = 1074294520;
++pub const EVIOCSMASK: u32 = 2148550035;
++pub const BTRFS_IOC_FORGET_DEV: u32 = 2415956997;
++pub const CXL_MEM_QUERY_COMMANDS: u32 = 1074318849;
++pub const CEC_S_MODE: u32 = 2147770633;
++pub const MGSL_IOCSIF: u32 = 536898826;
++pub const SWITCHTEC_IOCTL_PFF_TO_PORT: u32 = 3222034244;
++pub const PPSETMODE: u32 = 2147774592;
++pub const VFIO_DEVICE_SET_IRQS: u32 = 536886126;
++pub const VIDIOC_PREPARE_BUF: u32 = 3227014749;
++pub const CEC_ADAP_G_CONNECTOR_INFO: u32 = 1078223114;
++pub const IOC_OPAL_WRITE_SHADOW_MBR: u32 = 2166386922;
++pub const VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL: u32 = 3225441867;
++pub const UDMABUF_CREATE: u32 = 2149086530;
++pub const SONET_CLRDIAG: u32 = 3221512467;
++pub const PHN_SET_REG: u32 = 2148036609;
++pub const RNDADDTOENTCNT: u32 = 2147766785;
++pub const VBG_IOCTL_CHECK_BALLOON: u32 = 3223344657;
++pub const VIDIOC_OMAP3ISP_STAT_REQ: u32 = 3223869126;
++pub const PPS_FETCH: u32 = 3221778596;
++pub const RTC_AIE_OFF: u32 = 536899586;
++pub const VFIO_GROUP_SET_CONTAINER: u32 = 536886120;
++pub const FW_CDEV_IOC_RECEIVE_PHY_PACKETS: u32 = 2148016918;
++pub const VFIO_IOMMU_SPAPR_TCE_REMOVE: u32 = 536886136;
++pub const VFIO_IOMMU_GET_INFO: u32 = 536886128;
++pub const DM_DEV_SUSPEND: u32 = 3241737478;
++pub const F2FS_IOC_GET_COMPRESS_OPTION: u32 = 1073935637;
++pub const FW_CDEV_IOC_STOP_ISO: u32 = 2147754763;
++pub const GPIO_V2_GET_LINEINFO_IOCTL: u32 = 3238048773;
++pub const ATMMPC_CTRL: u32 = 536895960;
++pub const PPPIOCSXASYNCMAP: u32 = 2149610575;
++pub const CHIOGSTATUS: u32 = 2148557576;
++pub const FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE: u32 = 3222807309;
++pub const RIO_MPORT_MAINT_PORT_IDX_GET: u32 = 1074031875;
++pub const CAPI_SET_FLAGS: u32 = 1074021156;
++pub const VFIO_GROUP_GET_DEVICE_FD: u32 = 536886122;
++pub const VHOST_SET_MEM_TABLE: u32 = 2148052739;
++pub const MATROXFB_SET_OUTPUT_CONNECTION: u32 = 2148036344;
++pub const DFL_FPGA_PORT_GET_REGION_INFO: u32 = 536917570;
++pub const VHOST_GET_FEATURES: u32 = 1074310912;
++pub const LIRC_GET_REC_RESOLUTION: u32 = 1074030855;
++pub const PACKET_CTRL_CMD: u32 = 3222820865;
++pub const LIRC_SET_TRANSMITTER_MASK: u32 = 2147772695;
++pub const BTRFS_IOC_ADD_DEV: u32 = 2415957002;
++pub const JSIOCGCORR: u32 = 1076128290;
++pub const VIDIOC_G_FMT: u32 = 3234878980;
++pub const RTC_EPOCH_SET: u32 = 2148036622;
++pub const CAPI_GET_PROFILE: u32 = 3225436937;
++pub const ATM_GETLOOP: u32 = 2148557138;
++pub const SCIF_LISTEN: u32 = 2147775234;
++pub const NBD_CLEAR_QUE: u32 = 536914693;
++pub const F2FS_IOC_MOVE_RANGE: u32 = 3223385353;
++pub const LIRC_GET_LENGTH: u32 = 1074030863;
++pub const I8K_SET_FAN: u32 = 3221776775;
++pub const FDSETMAXERRS: u32 = 2148794956;
++pub const VIDIOC_SUBDEV_QUERYCAP: u32 = 1077958144;
++pub const SNAPSHOT_SET_SWAP_AREA: u32 = 2148283149;
++pub const LIRC_GET_REC_TIMEOUT: u32 = 1074030884;
++pub const EVIOCRMFF: u32 = 2147763585;
++pub const GPIO_GET_LINEEVENT_IOCTL: u32 = 3224417284;
++pub const PPRDATA: u32 = 1073836165;
++pub const RIO_MPORT_GET_PROPERTIES: u32 = 1076915460;
++pub const TUNSETVNETHDRSZ: u32 = 2147767512;
++pub const GPIO_GET_LINEINFO_IOCTL: u32 = 3225990146;
++pub const GSMIOC_GETCONF: u32 = 1078740736;
++pub const LIRC_GET_SEND_MODE: u32 = 1074030849;
++pub const PPPIOCSACTIVE: u32 = 2148561990;
++pub const SIOCGSTAMPNS_NEW: u32 = 1074825479;
++pub const IPMICTL_RECEIVE_MSG: u32 = 3224398092;
++pub const LIRC_SET_SEND_DUTY_CYCLE: u32 = 2147772693;
++pub const UI_END_FF_ERASE: u32 = 2148292043;
++pub const SWITCHTEC_IOCTL_FLASH_PART_INFO: u32 = 3222296385;
++pub const FW_CDEV_IOC_SEND_PHY_PACKET: u32 = 3222807317;
++pub const NBD_SET_FLAGS: u32 = 536914698;
++pub const VFIO_DEVICE_GET_REGION_INFO: u32 = 536886124;
++pub const REISERFS_IOC_UNPACK: u32 = 2148060417;
++pub const FW_CDEV_IOC_REMOVE_DESCRIPTOR: u32 = 2147754759;
++pub const RIO_SET_EVENT_MASK: u32 = 2147773709;
++pub const SNAPSHOT_ALLOC_SWAP_PAGE: u32 = 1074279188;
++pub const VDUSE_VQ_INJECT_IRQ: u32 = 2147778839;
++pub const I2OPASSTHRU: u32 = 1074817292;
++pub const IOC_OPAL_SET_PW: u32 = 2183164128;
++pub const FSI_SCOM_READ: u32 = 3223352065;
++pub const VHOST_VDPA_GET_DEVICE_ID: u32 = 1074048880;
++pub const VIDIOC_QBUF: u32 = 3227014671;
++pub const VIDIOC_S_TUNER: u32 = 2153010718;
++pub const TUNGETVNETHDRSZ: u32 = 1074025687;
++pub const CAPI_NCCI_GETUNIT: u32 = 1074021159;
++pub const DFL_FPGA_PORT_UINT_GET_IRQ_NUM: u32 = 1074050631;
++pub const VIDIOC_OMAP3ISP_STAT_EN: u32 = 3221771975;
++pub const GPIO_V2_LINE_SET_CONFIG_IOCTL: u32 = 3239097357;
++pub const TEE_IOC_VERSION: u32 = 1074570240;
++pub const VIDIOC_LOG_STATUS: u32 = 536892998;
++pub const IPMICTL_SEND_COMMAND_SETTIME: u32 = 1076914453;
++pub const VHOST_SET_LOG_FD: u32 = 2147790599;
++pub const SCIF_SEND: u32 = 3222827782;
++pub const VIDIOC_SUBDEV_G_FMT: u32 = 3227014660;
++pub const NS_ADJBUFLEV: u32 = 536895843;
++pub const VIDIOC_DBG_S_REGISTER: u32 = 2151175759;
++pub const NILFS_IOCTL_RESIZE: u32 = 2148036235;
++pub const PHN_GETREG: u32 = 3221778437;
++pub const I2OSWDL: u32 = 3224398085;
++pub const VBG_IOCTL_VMMDEV_REQUEST_BIG: u32 = 536892931;
++pub const JSIOCGBUTTONS: u32 = 1073834514;
++pub const VFIO_IOMMU_ENABLE: u32 = 536886131;
++pub const DM_DEV_RENAME: u32 = 3241737477;
++pub const MEDIA_IOC_SETUP_LINK: u32 = 3224665091;
++pub const VIDIOC_ENUMOUTPUT: u32 = 3225966128;
++pub const STP_POLICY_ID_SET: u32 = 3222283520;
++pub const VHOST_VDPA_SET_CONFIG_CALL: u32 = 2147790711;
++pub const VIDIOC_SUBDEV_G_CROP: u32 = 3224917563;
++pub const VIDIOC_S_CROP: u32 = 2148816444;
++pub const WDIOC_GETTEMP: u32 = 1074026243;
++pub const IOC_OPAL_ADD_USR_TO_LR: u32 = 2165862628;
++pub const UI_SET_LEDBIT: u32 = 2147767657;
++pub const NBD_SET_SOCK: u32 = 536914688;
++pub const BTRFS_IOC_SNAP_DESTROY_V2: u32 = 2415957055;
++pub const HIDIOCGCOLLECTIONINFO: u32 = 3222292497;
++pub const I2OSWUL: u32 = 3224398086;
++pub const IOCTL_MEI_NOTIFY_GET: u32 = 1074022403;
++pub const FDFMTTRK: u32 = 2148270664;
++pub const MMTIMER_GETBITS: u32 = 536898820;
++pub const VIDIOC_ENUMSTD: u32 = 3225966105;
++pub const VHOST_GET_VRING_BASE: u32 = 3221794578;
++pub const VFIO_DEVICE_IOEVENTFD: u32 = 536886132;
++pub const ATMARP_SETENTRY: u32 = 536895971;
++pub const CCISS_REVALIDVOLS: u32 = 536887818;
++pub const MGSL_IOCLOOPTXDONE: u32 = 536898825;
++pub const RTC_VL_READ: u32 = 1074032659;
++pub const ND_IOCTL_ARS_STATUS: u32 = 3224391171;
++pub const RIO_DEV_DEL: u32 = 2149608728;
++pub const VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES: u32 = 3223606797;
++pub const VIDIOC_SUBDEV_DV_TIMINGS_CAP: u32 = 3230684772;
++pub const SONYPI_IOCSFAN: u32 = 2147579403;
++pub const SPIOCSTYPE: u32 = 2148036865;
++pub const IPMICTL_REGISTER_FOR_CMD: u32 = 1073899790;
++pub const I8K_GET_FAN: u32 = 3221776774;
++pub const TUNGETVNETBE: u32 = 1074025695;
++pub const AUTOFS_DEV_IOCTL_FAIL: u32 = 3222836087;
++pub const UI_END_FF_UPLOAD: u32 = 2154321353;
++pub const TOSH_SMM: u32 = 3222828176;
++pub const SONYPI_IOCGBAT2REM: u32 = 1073903109;
++pub const F2FS_IOC_GET_COMPRESS_BLOCKS: u32 = 1074328849;
++pub const PPPIOCSNPMODE: u32 = 2148037707;
++pub const USBDEVFS_CONTROL: u32 = 3222820096;
++pub const HIDIOCGUSAGE: u32 = 3222816779;
++pub const TUNSETTXFILTER: u32 = 2147767505;
++pub const TUNGETVNETLE: u32 = 1074025693;
++pub const VIDIOC_ENUM_DV_TIMINGS: u32 = 3230946914;
++pub const BTRFS_IOC_INO_PATHS: u32 = 3224933411;
++pub const MGSL_IOCGXSYNC: u32 = 536898836;
++pub const HIDIOCGFIELDINFO: u32 = 3224913930;
++pub const VIDIOC_SUBDEV_G_STD: u32 = 1074288151;
++pub const I2OVALIDATE: u32 = 1074030856;
++pub const VIDIOC_TRY_ENCODER_CMD: u32 = 3223869006;
++pub const NILFS_IOCTL_GET_CPINFO: u32 = 1075342978;
++pub const VIDIOC_G_FREQUENCY: u32 = 3224131128;
++pub const VFAT_IOCTL_READDIR_SHORT: u32 = 1110471170;
++pub const ND_IOCTL_GET_CONFIG_DATA: u32 = 3222031877;
++pub const F2FS_IOC_RESERVE_COMPRESS_BLOCKS: u32 = 1074328851;
++pub const FDGETDRVSTAT: u32 = 1078985234;
++pub const SYNC_IOC_MERGE: u32 = 3224387075;
++pub const VIDIOC_S_DV_TIMINGS: u32 = 3229898327;
++pub const PPPIOCBRIDGECHAN: u32 = 2147775541;
++pub const LIRC_SET_SEND_MODE: u32 = 2147772689;
++pub const RIO_ENABLE_PORTWRITE_RANGE: u32 = 2148560139;
++pub const ATM_GETTYPE: u32 = 2148557188;
++pub const PHN_GETREGS: u32 = 3223875591;
++pub const FDSETEMSGTRESH: u32 = 536871498;
++pub const NILFS_IOCTL_GET_VINFO: u32 = 3222826630;
++pub const MGSL_IOCWAITEVENT: u32 = 3221515528;
++pub const CAPI_INSTALLED: u32 = 1073890082;
++pub const EVIOCGMASK: u32 = 1074808210;
++pub const BTRFS_IOC_SUBVOL_GETFLAGS: u32 = 1074304025;
++pub const FSL_HV_IOCTL_PARTITION_GET_STATUS: u32 = 3222056706;
++pub const MEDIA_IOC_ENUM_ENTITIES: u32 = 3238034433;
++pub const GSMIOC_GETFIRST: u32 = 1074022148;
++pub const FW_CDEV_IOC_FLUSH_ISO: u32 = 2147754776;
++pub const VIDIOC_DBG_G_CHIP_INFO: u32 = 3234354790;
++pub const F2FS_IOC_RELEASE_VOLATILE_WRITE: u32 = 536933636;
++pub const CAPI_GET_SERIAL: u32 = 3221504776;
++pub const FDSETDRVPRM: u32 = 2155872912;
++pub const IOC_OPAL_SAVE: u32 = 2165862620;
++pub const VIDIOC_G_DV_TIMINGS: u32 = 3229898328;
++pub const TUNSETIFINDEX: u32 = 2147767514;
++pub const CCISS_SETINTINFO: u32 = 2148024835;
++pub const RTC_VL_CLR: u32 = 536899604;
++pub const VIDIOC_REQBUFS: u32 = 3222558216;
++pub const USBDEVFS_REAPURBNDELAY32: u32 = 2147767565;
++pub const TEE_IOC_SHM_REGISTER: u32 = 3222840329;
++pub const USBDEVFS_SETCONFIGURATION: u32 = 1074025733;
++pub const CCISS_GETNODENAME: u32 = 1074807300;
++pub const VIDIOC_SUBDEV_S_FRAME_INTERVAL: u32 = 3224393238;
++pub const VIDIOC_ENUM_FRAMESIZES: u32 = 3224131146;
++pub const VFIO_DEVICE_PCI_HOT_RESET: u32 = 536886129;
++pub const FW_CDEV_IOC_SEND_BROADCAST_REQUEST: u32 = 2150114066;
++pub const LPSETTIMEOUT_NEW: u32 = 2148533775;
++pub const RIO_CM_MPORT_GET_LIST: u32 = 3221512971;
++pub const FW_CDEV_IOC_QUEUE_ISO: u32 = 3222807305;
++pub const FDRAWCMD: u32 = 536871512;
++pub const SCIF_UNREG: u32 = 3222303497;
++pub const PPPIOCGIDLE64: u32 = 1074820159;
++pub const USBDEVFS_RELEASEINTERFACE: u32 = 1074025744;
++pub const VIDIOC_CROPCAP: u32 = 3224131130;
++pub const DFL_FPGA_PORT_GET_INFO: u32 = 536917569;
++pub const PHN_SET_REGS: u32 = 2148036611;
++pub const ATMLEC_DATA: u32 = 536895953;
++pub const PPPOEIOCDFWD: u32 = 536916225;
++pub const VIDIOC_S_SELECTION: u32 = 3225441887;
++pub const SNAPSHOT_FREE_SWAP_PAGES: u32 = 536883977;
++pub const BTRFS_IOC_LOGICAL_INO: u32 = 3224933412;
++pub const VIDIOC_S_CTRL: u32 = 3221771804;
++pub const ZATM_SETPOOL: u32 = 2148557155;
++pub const MTIOCPOS: u32 = 1074294019;
++pub const PMU_IOC_SLEEP: u32 = 536887808;
++pub const AUTOFS_DEV_IOCTL_PROTOSUBVER: u32 = 3222836083;
++pub const VBG_IOCTL_CHANGE_FILTER_MASK: u32 = 3223344652;
++pub const NILFS_IOCTL_GET_SUSTAT: u32 = 1076915845;
++pub const VIDIOC_QUERYCAP: u32 = 1080579584;
++pub const HPET_INFO: u32 = 1075341315;
++pub const VIDIOC_AM437X_CCDC_CFG: u32 = 2148030145;
++pub const DM_LIST_DEVICES: u32 = 3241737474;
++pub const TUNSETOWNER: u32 = 2147767500;
++pub const VBG_IOCTL_CHANGE_GUEST_CAPABILITIES: u32 = 3223344654;
++pub const RNDADDENTROPY: u32 = 2148028931;
++pub const USBDEVFS_RESET: u32 = 536892692;
++pub const BTRFS_IOC_SUBVOL_CREATE: u32 = 2415957006;
++pub const USBDEVFS_FORBID_SUSPEND: u32 = 536892705;
++pub const FDGETDRVTYP: u32 = 1074790927;
++pub const PPWCONTROL: u32 = 2147577988;
++pub const VIDIOC_ENUM_FRAMEINTERVALS: u32 = 3224655435;
++pub const KCOV_DISABLE: u32 = 536896357;
++pub const IOC_OPAL_ACTIVATE_LSP: u32 = 2165862623;
++pub const VHOST_VDPA_GET_IOVA_RANGE: u32 = 1074835320;
++pub const PPPIOCSPASS: u32 = 2148561991;
++pub const RIO_CM_CHAN_CONNECT: u32 = 2148033288;
++pub const I2OSWDEL: u32 = 3224398087;
++pub const FS_IOC_SET_ENCRYPTION_POLICY: u32 = 1074554387;
++pub const IOC_OPAL_MBR_DONE: u32 = 2165338345;
++pub const PPPIOCSMAXCID: u32 = 2147775569;
++pub const PPSETPHASE: u32 = 2147774612;
++pub const VHOST_VDPA_SET_VRING_ENABLE: u32 = 2148052853;
++pub const USBDEVFS_GET_SPEED: u32 = 536892703;
++pub const SONET_GETFRAMING: u32 = 1074028822;
++pub const VIDIOC_QUERYBUF: u32 = 3227014665;
++pub const VIDIOC_S_EDID: u32 = 3223868969;
++pub const BTRFS_IOC_QGROUP_ASSIGN: u32 = 2149094441;
++pub const PPS_GETCAP: u32 = 1074294947;
++pub const SNAPSHOT_PLATFORM_SUPPORT: u32 = 536883983;
++pub const LIRC_SET_REC_TIMEOUT_REPORTS: u32 = 2147772697;
++pub const SCIF_GET_NODEIDS: u32 = 3222827790;
++pub const NBD_DISCONNECT: u32 = 536914696;
++pub const VIDIOC_SUBDEV_G_FRAME_INTERVAL: u32 = 3224393237;
++pub const VFIO_IOMMU_DISABLE: u32 = 536886132;
++pub const SNAPSHOT_CREATE_IMAGE: u32 = 2147758865;
++pub const SNAPSHOT_POWER_OFF: u32 = 536883984;
++pub const APM_IOC_STANDBY: u32 = 536887553;
++pub const PPPIOCGUNIT: u32 = 1074033750;
++pub const AUTOFS_IOC_EXPIRE_MULTI: u32 = 2147783526;
++pub const SCIF_BIND: u32 = 3221779201;
++pub const IOC_WATCH_QUEUE_SET_SIZE: u32 = 536893280;
++pub const NILFS_IOCTL_CHANGE_CPMODE: u32 = 2148560512;
++pub const IOC_OPAL_LOCK_UNLOCK: u32 = 2165862621;
++pub const F2FS_IOC_SET_PIN_FILE: u32 = 2147808525;
++pub const PPPIOCGRASYNCMAP: u32 = 1074033749;
++pub const MMTIMER_MMAPAVAIL: u32 = 536898822;
++pub const I2OPASSTHRU32: u32 = 1074293004;
++pub const DFL_FPGA_FME_PORT_RELEASE: u32 = 2147792513;
++pub const VIDIOC_SUBDEV_QUERY_DV_TIMINGS: u32 = 1082414691;
++pub const UI_SET_SNDBIT: u32 = 2147767658;
++pub const VIDIOC_G_AUDOUT: u32 = 1077171761;
++pub const RTC_PLL_SET: u32 = 2149609490;
++pub const VIDIOC_ENUMAUDIO: u32 = 3224655425;
++pub const AUTOFS_DEV_IOCTL_TIMEOUT: u32 = 3222836090;
++pub const VBG_IOCTL_DRIVER_VERSION_INFO: u32 = 3224131072;
++pub const VHOST_SCSI_GET_EVENTS_MISSED: u32 = 2147790660;
++pub const VHOST_SET_VRING_ADDR: u32 = 2150149905;
++pub const VDUSE_CREATE_DEV: u32 = 2169536770;
++pub const FDFLUSH: u32 = 536871499;
++pub const VBG_IOCTL_WAIT_FOR_EVENTS: u32 = 3223344650;
++pub const DFL_FPGA_FME_ERR_SET_IRQ: u32 = 2148054660;
++pub const F2FS_IOC_GET_PIN_FILE: u32 = 1074066702;
++pub const SCIF_CONNECT: u32 = 3221779203;
++pub const BLKREPORTZONE: u32 = 3222278786;
++pub const AUTOFS_IOC_ASKUMOUNT: u32 = 1074041712;
++pub const ATM_ADDPARTY: u32 = 2148557300;
++pub const FDSETPRM: u32 = 2149581378;
++pub const ATM_GETSTATZ: u32 = 2148557137;
++pub const ISST_IF_MSR_COMMAND: u32 = 3221814788;
++pub const BTRFS_IOC_GET_SUBVOL_INFO: u32 = 1106809916;
++pub const VIDIOC_UNSUBSCRIBE_EVENT: u32 = 2149602907;
++pub const SEV_ISSUE_CMD: u32 = 3222295296;
++pub const GPIOHANDLE_SET_LINE_VALUES_IOCTL: u32 = 3225465865;
++pub const PCITEST_COPY: u32 = 2148028422;
++pub const IPMICTL_GET_MY_ADDRESS_CMD: u32 = 1074030866;
++pub const CHIOGPICKER: u32 = 1074029316;
++pub const CAPI_NCCI_OPENCOUNT: u32 = 1074021158;
++pub const CXL_MEM_SEND_COMMAND: u32 = 3224423938;
++pub const PERF_EVENT_IOC_SET_FILTER: u32 = 2148017158;
++pub const IOC_OPAL_REVERT_TPR: u32 = 2164814050;
++pub const CHIOGVPARAMS: u32 = 1081107219;
++pub const PTP_PEROUT_REQUEST: u32 = 2151169283;
++pub const FSI_SCOM_CHECK: u32 = 1074033408;
++pub const RTC_IRQP_READ: u32 = 1074294795;
++pub const RIO_MPORT_MAINT_READ_LOCAL: u32 = 1075342597;
++pub const HIDIOCGRDESCSIZE: u32 = 1074022401;
++pub const UI_GET_VERSION: u32 = 1074025773;
++pub const NILFS_IOCTL_GET_CPSTAT: u32 = 1075342979;
++pub const CCISS_GETBUSTYPES: u32 = 1074020871;
++pub const VFIO_IOMMU_SPAPR_TCE_CREATE: u32 = 536886135;
++pub const VIDIOC_EXPBUF: u32 = 3225441808;
++pub const UI_SET_RELBIT: u32 = 2147767654;
++pub const VFIO_SET_IOMMU: u32 = 536886118;
++pub const VIDIOC_S_MODULATOR: u32 = 2151962167;
++pub const TUNGETFILTER: u32 = 1074812123;
++pub const CCISS_SETNODENAME: u32 = 2148549125;
++pub const FBIO_GETCONTROL2: u32 = 1074284169;
++pub const TUNSETDEBUG: u32 = 2147767497;
++pub const DM_DEV_REMOVE: u32 = 3241737476;
++pub const HIDIOCSUSAGES: u32 = 2417772564;
++pub const FS_IOC_ADD_ENCRYPTION_KEY: u32 = 3226494487;
++pub const FBIOGET_VBLANK: u32 = 1075856914;
++pub const ATM_GETSTAT: u32 = 2148557136;
++pub const VIDIOC_G_JPEGCOMP: u32 = 1082938941;
++pub const TUNATTACHFILTER: u32 = 2148553941;
++pub const UI_SET_ABSBIT: u32 = 2147767655;
++pub const DFL_FPGA_PORT_ERR_GET_IRQ_NUM: u32 = 1074050629;
++pub const USBDEVFS_REAPURB32: u32 = 2147767564;
++pub const BTRFS_IOC_TRANS_END: u32 = 536908807;
++pub const CAPI_REGISTER: u32 = 2148287233;
++pub const F2FS_IOC_COMPRESS_FILE: u32 = 536933656;
++pub const USBDEVFS_DISCARDURB: u32 = 536892683;
++pub const HE_GET_REG: u32 = 2148557152;
++pub const ATM_SETLOOP: u32 = 2148557139;
++pub const ATMSIGD_CTRL: u32 = 536895984;
++pub const CIOC_KERNEL_VERSION: u32 = 3221775114;
++pub const BTRFS_IOC_CLONE_RANGE: u32 = 2149618701;
++pub const SNAPSHOT_UNFREEZE: u32 = 536883970;
++pub const F2FS_IOC_START_VOLATILE_WRITE: u32 = 536933635;
++pub const PMU_IOC_HAS_ADB: u32 = 1074283012;
++pub const I2OGETIOPS: u32 = 1075865856;
++pub const VIDIOC_S_FBUF: u32 = 2150651403;
++pub const PPRCONTROL: u32 = 1073836163;
++pub const CHIOSPICKER: u32 = 2147771141;
++pub const VFIO_IOMMU_SPAPR_REGISTER_MEMORY: u32 = 536886133;
++pub const TUNGETSNDBUF: u32 = 1074025683;
++pub const GSMIOC_SETCONF: u32 = 2152482561;
++pub const IOC_PR_PREEMPT: u32 = 2149085387;
++pub const KCOV_INIT_TRACE: u32 = 1074291457;
++pub const SONYPI_IOCGBAT1CAP: u32 = 1073903106;
++pub const SWITCHTEC_IOCTL_FLASH_INFO: u32 = 1074812736;
++pub const MTIOCTOP: u32 = 2148035841;
++pub const VHOST_VDPA_SET_STATUS: u32 = 2147594098;
++pub const VHOST_SCSI_SET_EVENTS_MISSED: u32 = 2147790659;
++pub const VFIO_IOMMU_DIRTY_PAGES: u32 = 536886133;
++pub const BTRFS_IOC_SCRUB_PROGRESS: u32 = 3288372253;
++pub const PPPIOCGMRU: u32 = 1074033747;
++pub const BTRFS_IOC_DEV_REPLACE: u32 = 3391657013;
++pub const PPPIOCGFLAGS: u32 = 1074033754;
++pub const NILFS_IOCTL_SET_SUINFO: u32 = 2149084813;
++pub const FW_CDEV_IOC_GET_CYCLE_TIMER2: u32 = 3222807316;
++pub const ATM_DELLECSADDR: u32 = 2148557199;
++pub const FW_CDEV_IOC_GET_SPEED: u32 = 536879889;
++pub const PPPIOCGIDLE32: u32 = 1074295871;
++pub const VFIO_DEVICE_RESET: u32 = 536886127;
++pub const GPIO_GET_LINEINFO_UNWATCH_IOCTL: u32 = 3221533708;
++pub const WDIOC_GETSTATUS: u32 = 1074026241;
++pub const BTRFS_IOC_SET_FEATURES: u32 = 2150667321;
++pub const IOCTL_MEI_CONNECT_CLIENT: u32 = 3222292481;
++pub const VIDIOC_OMAP3ISP_AEWB_CFG: u32 = 3223344835;
++pub const PCITEST_READ: u32 = 2148028421;
++pub const VFIO_GROUP_GET_STATUS: u32 = 536886119;
++pub const MATROXFB_GET_ALL_OUTPUTS: u32 = 1074294523;
++pub const USBDEVFS_CLEAR_HALT: u32 = 1074025749;
++pub const VIDIOC_DECODER_CMD: u32 = 3225966176;
++pub const VIDIOC_G_AUDIO: u32 = 1077171745;
++pub const CCISS_RESCANDISK: u32 = 536887824;
++pub const RIO_DISABLE_PORTWRITE_RANGE: u32 = 2148560140;
++pub const IOC_OPAL_SECURE_ERASE_LR: u32 = 2165338343;
++pub const USBDEVFS_REAPURB: u32 = 2148029708;
++pub const DFL_FPGA_CHECK_EXTENSION: u32 = 536917505;
++pub const AUTOFS_IOC_PROTOVER: u32 = 1074041699;
++pub const FSL_HV_IOCTL_MEMCPY: u32 = 3223891717;
++pub const BTRFS_IOC_GET_FEATURES: u32 = 1075352633;
++pub const PCITEST_MSIX: u32 = 2147766279;
++pub const BTRFS_IOC_DEFRAG_RANGE: u32 = 2150667280;
++pub const UI_BEGIN_FF_ERASE: u32 = 3222033866;
++pub const DM_GET_TARGET_VERSION: u32 = 3241737489;
++pub const PPPIOCGIDLE: u32 = 1074820159;
++pub const NVRAM_SETCKS: u32 = 536899649;
++pub const WDIOC_GETSUPPORT: u32 = 1076385536;
++pub const GSMIOC_ENABLE_NET: u32 = 2150909698;
++pub const GPIO_GET_CHIPINFO_IOCTL: u32 = 1078244353;
++pub const NE_ADD_VCPU: u32 = 3221532193;
++pub const EVIOCSKEYCODE_V2: u32 = 2150122756;
++pub const PTP_SYS_OFFSET_EXTENDED2: u32 = 3300932882;
++pub const SCIF_FENCE_WAIT: u32 = 3221517072;
++pub const RIO_TRANSFER: u32 = 3222826261;
++pub const FSL_HV_IOCTL_DOORBELL: u32 = 3221794566;
++pub const RIO_MPORT_MAINT_WRITE_LOCAL: u32 = 2149084422;
++pub const I2OEVTREG: u32 = 2148296970;
++pub const I2OPARMGET: u32 = 3223873796;
++pub const EVIOCGID: u32 = 1074283778;
++pub const BTRFS_IOC_QGROUP_CREATE: u32 = 2148570154;
++pub const AUTOFS_DEV_IOCTL_SETPIPEFD: u32 = 3222836088;
++pub const VIDIOC_S_PARM: u32 = 3234616854;
++pub const TUNSETSTEERINGEBPF: u32 = 1074025696;
++pub const ATM_GETNAMES: u32 = 2148557187;
++pub const VIDIOC_QUERYMENU: u32 = 3224131109;
++pub const DFL_FPGA_PORT_DMA_UNMAP: u32 = 536917572;
++pub const I2OLCTGET: u32 = 3222825218;
++pub const FS_IOC_GET_ENCRYPTION_PWSALT: u32 = 2148558356;
++pub const NS_SETBUFLEV: u32 = 2148557154;
++pub const BLKCLOSEZONE: u32 = 2148536967;
++pub const SONET_GETFRSENSE: u32 = 1074159895;
++pub const UI_SET_EVBIT: u32 = 2147767652;
++pub const DM_LIST_VERSIONS: u32 = 3241737485;
++pub const HIDIOCGSTRING: u32 = 1090799620;
++pub const PPPIOCATTCHAN: u32 = 2147775544;
++pub const VDUSE_DEV_SET_CONFIG: u32 = 2148040978;
++pub const TUNGETFEATURES: u32 = 1074025679;
++pub const VFIO_GROUP_UNSET_CONTAINER: u32 = 536886121;
++pub const IPMICTL_SET_MY_ADDRESS_CMD: u32 = 1074030865;
++pub const CCISS_REGNEWDISK: u32 = 2147762701;
++pub const VIDIOC_QUERY_DV_TIMINGS: u32 = 1082414691;
++pub const PHN_SETREGS: u32 = 2150133768;
++pub const FAT_IOCTL_GET_ATTRIBUTES: u32 = 1074033168;
++pub const FSL_MC_SEND_MC_COMMAND: u32 = 3225440992;
++pub const TUNGETIFF: u32 = 1074025682;
++pub const PTP_CLOCK_GETCAPS2: u32 = 1079000330;
++pub const BTRFS_IOC_RESIZE: u32 = 2415956995;
++pub const VHOST_SET_VRING_ENDIAN: u32 = 2148052755;
++pub const PPS_KC_BIND: u32 = 2148036773;
++pub const F2FS_IOC_WRITE_CHECKPOINT: u32 = 536933639;
++pub const UI_SET_FFBIT: u32 = 2147767659;
++pub const IPMICTL_GET_MY_LUN_CMD: u32 = 1074030868;
++pub const CEC_ADAP_G_PHYS_ADDR: u32 = 1073897729;
++pub const CEC_G_MODE: u32 = 1074028808;
++pub const USBDEVFS_RESETEP: u32 = 1074025731;
++pub const MEDIA_REQUEST_IOC_QUEUE: u32 = 536902784;
++pub const USBDEVFS_ALLOC_STREAMS: u32 = 1074287900;
++pub const MGSL_IOCSXCTRL: u32 = 536898837;
++pub const MEDIA_IOC_G_TOPOLOGY: u32 = 3225975812;
++pub const PPPIOCUNBRIDGECHAN: u32 = 536900660;
++pub const F2FS_IOC_COMMIT_ATOMIC_WRITE: u32 = 536933634;
++pub const ISST_IF_GET_PLATFORM_INFO: u32 = 1074331136;
++pub const SCIF_FENCE_MARK: u32 = 3222303503;
++pub const USBDEVFS_RELEASE_PORT: u32 = 1074025753;
++pub const VFIO_CHECK_EXTENSION: u32 = 536886117;
++pub const BTRFS_IOC_QGROUP_LIMIT: u32 = 1076925483;
++pub const FAT_IOCTL_GET_VOLUME_ID: u32 = 1074033171;
++pub const UI_SET_PHYS: u32 = 2148029804;
++pub const FDWERRORGET: u32 = 1076363799;
++pub const VIDIOC_SUBDEV_G_EDID: u32 = 3223868968;
++pub const MGSL_IOCGSTATS: u32 = 536898823;
++pub const RPROC_SET_SHUTDOWN_ON_RELEASE: u32 = 2147792641;
++pub const SIOCGSTAMP_NEW: u32 = 1074825478;
++pub const RTC_WKALM_RD: u32 = 1076391952;
++pub const PHN_GET_REG: u32 = 3221778432;
++pub const DELL_WMI_SMBIOS_CMD: u32 = 3224655616;
++pub const PHN_NOT_OH: u32 = 536899588;
++pub const PPGETMODES: u32 = 1074032791;
++pub const CHIOGPARAMS: u32 = 1075077894;
++pub const VFIO_DEVICE_GET_GFX_DMABUF: u32 = 536886131;
++pub const VHOST_SET_VRING_BUSYLOOP_TIMEOUT: u32 = 2148052771;
++pub const VIDIOC_SUBDEV_G_SELECTION: u32 = 3225441853;
++pub const BTRFS_IOC_RM_DEV_V2: u32 = 2415957050;
++pub const MGSL_IOCWAITGPIO: u32 = 3222301970;
++pub const PMU_IOC_CAN_SLEEP: u32 = 1074283013;
++pub const KCOV_ENABLE: u32 = 536896356;
++pub const BTRFS_IOC_CLONE: u32 = 2147783689;
++pub const F2FS_IOC_DEFRAGMENT: u32 = 3222336776;
++pub const FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE: u32 = 2147754766;
++pub const AGPIOC_ALLOCATE: u32 = 3221766406;
++pub const NE_SET_USER_MEMORY_REGION: u32 = 2149101091;
++pub const MGSL_IOCTXABORT: u32 = 536898822;
++pub const MGSL_IOCSGPIO: u32 = 2148560144;
++pub const LIRC_SET_REC_CARRIER: u32 = 2147772692;
++pub const F2FS_IOC_FLUSH_DEVICE: u32 = 2148070666;
++pub const SNAPSHOT_ATOMIC_RESTORE: u32 = 536883972;
++pub const RTC_UIE_OFF: u32 = 536899588;
++pub const BT_BMC_IOCTL_SMS_ATN: u32 = 536916224;
++pub const NVME_IOCTL_ID: u32 = 536890944;
++pub const NE_START_ENCLAVE: u32 = 3222318628;
++pub const VIDIOC_STREAMON: u32 = 2147767826;
++pub const FDPOLLDRVSTAT: u32 = 1078985235;
++pub const AUTOFS_DEV_IOCTL_READY: u32 = 3222836086;
++pub const VIDIOC_ENUMAUDOUT: u32 = 3224655426;
++pub const VIDIOC_SUBDEV_S_STD: u32 = 2148029976;
++pub const WDIOC_GETTIMELEFT: u32 = 1074026250;
++pub const ATM_GETLINKRATE: u32 = 2148557185;
++pub const RTC_WKALM_SET: u32 = 2150133775;
++pub const VHOST_GET_BACKEND_FEATURES: u32 = 1074310950;
++pub const ATMARP_ENCAP: u32 = 536895973;
++pub const CAPI_GET_FLAGS: u32 = 1074021155;
++pub const IPMICTL_SET_MY_CHANNEL_ADDRESS_CMD: u32 = 1074030872;
++pub const DFL_FPGA_FME_PORT_ASSIGN: u32 = 2147792514;
++pub const NS_GET_OWNER_UID: u32 = 536917764;
++pub const VIDIOC_OVERLAY: u32 = 2147767822;
++pub const BTRFS_IOC_WAIT_SYNC: u32 = 2148045846;
++pub const GPIOHANDLE_SET_CONFIG_IOCTL: u32 = 3226776586;
++pub const VHOST_GET_VRING_ENDIAN: u32 = 2148052756;
++pub const ATM_GETADDR: u32 = 2148557190;
++pub const PHN_GET_REGS: u32 = 3221778434;
++pub const AUTOFS_DEV_IOCTL_REQUESTER: u32 = 3222836091;
++pub const AUTOFS_DEV_IOCTL_EXPIRE: u32 = 3222836092;
++pub const SNAPSHOT_S2RAM: u32 = 536883979;
++pub const JSIOCSAXMAP: u32 = 2151705137;
++pub const F2FS_IOC_SET_COMPRESS_OPTION: u32 = 2147677462;
++pub const VBG_IOCTL_HGCM_DISCONNECT: u32 = 3223082501;
++pub const SCIF_FENCE_SIGNAL: u32 = 3223876369;
++pub const VFIO_DEVICE_GET_PCI_HOT_RESET_INFO: u32 = 536886128;
++pub const VIDIOC_SUBDEV_ENUM_MBUS_CODE: u32 = 3224393218;
++pub const MMTIMER_GETOFFSET: u32 = 536898816;
++pub const RIO_CM_CHAN_LISTEN: u32 = 2147640070;
++pub const ATM_SETSC: u32 = 2147770865;
++pub const F2FS_IOC_SHUTDOWN: u32 = 1074026621;
++pub const NVME_IOCTL_RESCAN: u32 = 536890950;
++pub const BLKOPENZONE: u32 = 2148536966;
++pub const DM_VERSION: u32 = 3241737472;
++pub const CEC_TRANSMIT: u32 = 3224920325;
++pub const FS_IOC_GET_ENCRYPTION_POLICY_EX: u32 = 3221841430;
++pub const SIOCMKCLIP: u32 = 536895968;
++pub const IPMI_BMC_IOCTL_CLEAR_SMS_ATN: u32 = 536916225;
++pub const HIDIOCGVERSION: u32 = 1074022401;
++pub const VIDIOC_S_INPUT: u32 = 3221509671;
++pub const VIDIOC_G_CROP: u32 = 3222558267;
++pub const LIRC_SET_WIDEBAND_RECEIVER: u32 = 2147772707;
++pub const EVIOCGEFFECTS: u32 = 1074021764;
++pub const UVCIOC_CTRL_QUERY: u32 = 3222304033;
++pub const IOC_OPAL_GENERIC_TABLE_RW: u32 = 2167959787;
++pub const FS_IOC_READ_VERITY_METADATA: u32 = 3223873159;
++pub const ND_IOCTL_SET_CONFIG_DATA: u32 = 3221769734;
++pub const USBDEVFS_GETDRIVER: u32 = 2164544776;
++pub const IDT77105_GETSTAT: u32 = 2148557106;
++pub const HIDIOCINITREPORT: u32 = 536889349;
++pub const VFIO_DEVICE_GET_INFO: u32 = 536886123;
++pub const RIO_CM_CHAN_RECEIVE: u32 = 3222299402;
++pub const RNDGETENTCNT: u32 = 1074024960;
++pub const PPPIOCNEWUNIT: u32 = 3221517374;
++pub const BTRFS_IOC_INO_LOOKUP: u32 = 3489698834;
++pub const FDRESET: u32 = 536871508;
++pub const IOC_PR_REGISTER: u32 = 2149085384;
++pub const HIDIOCSREPORT: u32 = 2148288520;
++pub const TEE_IOC_OPEN_SESSION: u32 = 1074832386;
++pub const TEE_IOC_SUPPL_RECV: u32 = 1074832390;
++pub const BTRFS_IOC_BALANCE_CTL: u32 = 2147783713;
++pub const GPIO_GET_LINEINFO_WATCH_IOCTL: u32 = 3225990155;
++pub const HIDIOCGRAWINFO: u32 = 1074284547;
++pub const PPPIOCSCOMPRESS: u32 = 2148561997;
++pub const USBDEVFS_CONNECTINFO: u32 = 2148029713;
++pub const BLKRESETZONE: u32 = 2148536963;
++pub const CHIOINITELEM: u32 = 536896273;
++pub const NILFS_IOCTL_SET_ALLOC_RANGE: u32 = 2148560524;
++pub const AUTOFS_DEV_IOCTL_CATATONIC: u32 = 3222836089;
++pub const RIO_MPORT_MAINT_HDID_SET: u32 = 2147642625;
++pub const PPGETPHASE: u32 = 1074032793;
++pub const USBDEVFS_DISCONNECT_CLAIM: u32 = 1091065115;
++pub const FDMSGON: u32 = 536871493;
++pub const VIDIOC_G_SLICED_VBI_CAP: u32 = 3228849733;
++pub const BTRFS_IOC_BALANCE_V2: u32 = 3288372256;
++pub const MEDIA_REQUEST_IOC_REINIT: u32 = 536902785;
++pub const IOC_OPAL_ERASE_LR: u32 = 2165338342;
++pub const FDFMTBEG: u32 = 536871495;
++pub const RNDRESEEDCRNG: u32 = 536891911;
++pub const ISST_IF_GET_PHY_ID: u32 = 3221814785;
++pub const TUNSETNOCSUM: u32 = 2147767496;
++pub const SONET_GETSTAT: u32 = 1076125968;
++pub const TFD_IOC_SET_TICKS: u32 = 2148029440;
++pub const PPDATADIR: u32 = 2147774608;
++pub const IOC_OPAL_ENABLE_DISABLE_MBR: u32 = 2165338341;
++pub const GPIO_V2_GET_LINE_IOCTL: u32 = 3260068871;
++pub const RIO_CM_CHAN_SEND: u32 = 2148557577;
++pub const PPWCTLONIRQ: u32 = 2147578002;
++pub const SONYPI_IOCGBRT: u32 = 1073837568;
++pub const IOC_PR_RELEASE: u32 = 2148561098;
++pub const PPCLRIRQ: u32 = 1074032787;
++pub const IPMICTL_SET_MY_CHANNEL_LUN_CMD: u32 = 1074030874;
++pub const MGSL_IOCSXSYNC: u32 = 536898835;
++pub const HPET_IE_OFF: u32 = 536897538;
++pub const IOC_OPAL_ACTIVATE_USR: u32 = 2165338337;
++pub const SONET_SETFRAMING: u32 = 2147770645;
++pub const PERF_EVENT_IOC_PAUSE_OUTPUT: u32 = 2147755017;
++pub const BTRFS_IOC_LOGICAL_INO_V2: u32 = 3224933435;
++pub const VBG_IOCTL_HGCM_CONNECT: u32 = 3231471108;
++pub const BLKFINISHZONE: u32 = 2148536968;
++pub const EVIOCREVOKE: u32 = 2147763601;
++pub const VFIO_DEVICE_FEATURE: u32 = 536886133;
++pub const CCISS_GETPCIINFO: u32 = 1074283009;
++pub const ISST_IF_MBOX_COMMAND: u32 = 3221814787;
++pub const SCIF_ACCEPTREQ: u32 = 3222303492;
++pub const PERF_EVENT_IOC_QUERY_BPF: u32 = 3221758986;
++pub const VIDIOC_STREAMOFF: u32 = 2147767827;
++pub const VDUSE_DESTROY_DEV: u32 = 2164293891;
++pub const FDGETFDCSTAT: u32 = 1076363797;
++pub const VIDIOC_S_PRIORITY: u32 = 2147767876;
++pub const SNAPSHOT_FREEZE: u32 = 536883969;
++pub const VIDIOC_ENUMINPUT: u32 = 3226490394;
++pub const ZATM_GETPOOLZ: u32 = 2148557154;
++pub const RIO_DISABLE_DOORBELL_RANGE: u32 = 2148035850;
++pub const GPIO_V2_GET_LINEINFO_WATCH_IOCTL: u32 = 3238048774;
++pub const VIDIOC_G_STD: u32 = 1074288151;
++pub const USBDEVFS_ALLOW_SUSPEND: u32 = 536892706;
++pub const SONET_GETSTATZ: u32 = 1076125969;
++pub const SCIF_ACCEPTREG: u32 = 3221779205;
++pub const VIDIOC_ENCODER_CMD: u32 = 3223869005;
++pub const PPPIOCSRASYNCMAP: u32 = 2147775572;
++pub const IOCTL_MEI_NOTIFY_SET: u32 = 2147764226;
++pub const BTRFS_IOC_QUOTA_RESCAN_STATUS: u32 = 1077974061;
++pub const F2FS_IOC_GARBAGE_COLLECT: u32 = 2147808518;
++pub const ATMLEC_CTRL: u32 = 536895952;
++pub const MATROXFB_GET_AVAILABLE_OUTPUTS: u32 = 1074294521;
++pub const DM_DEV_CREATE: u32 = 3241737475;
++pub const VHOST_VDPA_GET_VRING_NUM: u32 = 1073917814;
++pub const VIDIOC_G_CTRL: u32 = 3221771803;
++pub const NBD_CLEAR_SOCK: u32 = 536914692;
++pub const VFIO_DEVICE_QUERY_GFX_PLANE: u32 = 536886130;
++pub const WDIOC_KEEPALIVE: u32 = 1074026245;
++pub const NVME_IOCTL_SUBSYS_RESET: u32 = 536890949;
++pub const PTP_EXTTS_REQUEST2: u32 = 2148547851;
++pub const PCITEST_BAR: u32 = 536891393;
++pub const MGSL_IOCGGPIO: u32 = 1074818321;
++pub const EVIOCSREP: u32 = 2148025603;
++pub const VFIO_DEVICE_GET_IRQ_INFO: u32 = 536886125;
++pub const HPET_DPI: u32 = 536897541;
++pub const VDUSE_VQ_SETUP_KICKFD: u32 = 2148040982;
++pub const ND_IOCTL_CALL: u32 = 3225439754;
++pub const HIDIOCGDEVINFO: u32 = 1075595267;
++pub const DM_TABLE_DEPS: u32 = 3241737483;
++pub const BTRFS_IOC_DEV_INFO: u32 = 3489698846;
++pub const VDUSE_IOTLB_GET_FD: u32 = 3223355664;
++pub const FW_CDEV_IOC_GET_INFO: u32 = 3223855872;
++pub const VIDIOC_G_PRIORITY: u32 = 1074026051;
++pub const ATM_NEWBACKENDIF: u32 = 2147639795;
++pub const VIDIOC_S_EXT_CTRLS: u32 = 3223344712;
++pub const VIDIOC_SUBDEV_ENUM_DV_TIMINGS: u32 = 3230946914;
++pub const VIDIOC_OMAP3ISP_CCDC_CFG: u32 = 3224917697;
++pub const VIDIOC_S_HW_FREQ_SEEK: u32 = 2150651474;
++pub const DM_TABLE_LOAD: u32 = 3241737481;
++pub const F2FS_IOC_START_ATOMIC_WRITE: u32 = 536933633;
++pub const VIDIOC_G_OUTPUT: u32 = 1074026030;
++pub const ATM_DROPPARTY: u32 = 2147770869;
++pub const CHIOGELEM: u32 = 2154586896;
++pub const BTRFS_IOC_GET_SUPPORTED_FEATURES: u32 = 1078498361;
++pub const EVIOCSKEYCODE: u32 = 2148025604;
++pub const NE_GET_IMAGE_LOAD_INFO: u32 = 3222318626;
++pub const TUNSETLINK: u32 = 2147767501;
++pub const FW_CDEV_IOC_ADD_DESCRIPTOR: u32 = 3222807302;
++pub const BTRFS_IOC_SCRUB_CANCEL: u32 = 536908828;
++pub const PPS_SETPARAMS: u32 = 2148036770;
++pub const IOC_OPAL_LR_SETUP: u32 = 2166911203;
++pub const FW_CDEV_IOC_DEALLOCATE: u32 = 2147754755;
++pub const WDIOC_SETTIMEOUT: u32 = 3221509894;
++pub const IOC_WATCH_QUEUE_SET_FILTER: u32 = 536893281;
++pub const CAPI_GET_MANUFACTURER: u32 = 3221504774;
++pub const VFIO_IOMMU_SPAPR_UNREGISTER_MEMORY: u32 = 536886134;
++pub const ASPEED_P2A_CTRL_IOCTL_SET_WINDOW: u32 = 2148578048;
++pub const VIDIOC_G_EDID: u32 = 3223868968;
++pub const F2FS_IOC_GARBAGE_COLLECT_RANGE: u32 = 2149119243;
++pub const RIO_MAP_INBOUND: u32 = 3223874833;
++pub const IOC_OPAL_TAKE_OWNERSHIP: u32 = 2164814046;
++pub const USBDEVFS_CLAIM_PORT: u32 = 1074025752;
++pub const VIDIOC_S_AUDIO: u32 = 2150913570;
++pub const FS_IOC_GET_ENCRYPTION_NONCE: u32 = 1074816539;
++pub const FW_CDEV_IOC_SEND_STREAM_PACKET: u32 = 2150114067;
++pub const BTRFS_IOC_SNAP_DESTROY: u32 = 2415957007;
++pub const SNAPSHOT_FREE: u32 = 536883973;
++pub const I8K_GET_SPEED: u32 = 3221776773;
++pub const HIDIOCGREPORT: u32 = 2148288519;
++pub const HPET_EPI: u32 = 536897540;
++pub const JSIOCSCORR: u32 = 2149870113;
++pub const IOC_PR_PREEMPT_ABORT: u32 = 2149085388;
++pub const RIO_MAP_OUTBOUND: u32 = 3223874831;
++pub const ATM_SETESI: u32 = 2148557196;
++pub const FW_CDEV_IOC_START_ISO: u32 = 2148541194;
++pub const ATM_DELADDR: u32 = 2148557193;
++pub const PPFCONTROL: u32 = 2147643534;
++pub const SONYPI_IOCGFAN: u32 = 1073837578;
++pub const RTC_IRQP_SET: u32 = 2148036620;
++pub const PCITEST_WRITE: u32 = 2148028420;
++pub const PPCLAIM: u32 = 536899723;
++pub const VIDIOC_S_JPEGCOMP: u32 = 2156680766;
++pub const IPMICTL_UNREGISTER_FOR_CMD: u32 = 1073899791;
++pub const VHOST_SET_FEATURES: u32 = 2148052736;
++pub const TOSHIBA_ACPI_SCI: u32 = 3222828177;
++pub const VIDIOC_DQBUF: u32 = 3227014673;
++pub const BTRFS_IOC_BALANCE_PROGRESS: u32 = 1140888610;
++pub const BTRFS_IOC_SUBVOL_SETFLAGS: u32 = 2148045850;
++pub const ATMLEC_MCAST: u32 = 536895954;
++pub const MMTIMER_GETFREQ: u32 = 1074294018;
++pub const VIDIOC_G_SELECTION: u32 = 3225441886;
++pub const RTC_ALM_SET: u32 = 2149871623;
++pub const PPPOEIOCSFWD: u32 = 2148053248;
++pub const IPMICTL_GET_MAINTENANCE_MODE_CMD: u32 = 1074030878;
++pub const FS_IOC_ENABLE_VERITY: u32 = 2155898501;
++pub const NILFS_IOCTL_GET_BDESCS: u32 = 3222826631;
++pub const FDFMTEND: u32 = 536871497;
++pub const DMA_BUF_SET_NAME: u32 = 2148033025;
++pub const UI_BEGIN_FF_UPLOAD: u32 = 3228063176;
++pub const RTC_UIE_ON: u32 = 536899587;
++pub const PPRELEASE: u32 = 536899724;
++pub const VFIO_IOMMU_UNMAP_DMA: u32 = 536886130;
++pub const VIDIOC_OMAP3ISP_PRV_CFG: u32 = 3228587714;
++pub const GPIO_GET_LINEHANDLE_IOCTL: u32 = 3245126659;
++pub const VFAT_IOCTL_READDIR_BOTH: u32 = 1110471169;
++pub const NVME_IOCTL_ADMIN_CMD: u32 = 3225964097;
++pub const VHOST_SET_VRING_KICK: u32 = 2148052768;
++pub const BTRFS_IOC_SUBVOL_CREATE_V2: u32 = 2415957016;
++pub const BTRFS_IOC_SNAP_CREATE: u32 = 2415956993;
++pub const SONYPI_IOCGBAT2CAP: u32 = 1073903108;
++pub const PPNEGOT: u32 = 2147774609;
++pub const NBD_PRINT_DEBUG: u32 = 536914694;
++pub const BTRFS_IOC_INO_LOOKUP_USER: u32 = 3489698878;
++pub const BTRFS_IOC_GET_SUBVOL_ROOTREF: u32 = 3489698877;
++pub const FS_IOC_REMOVE_ENCRYPTION_KEY_ALL_USERS: u32 = 3225445913;
++pub const BTRFS_IOC_FS_INFO: u32 = 1140888607;
++pub const VIDIOC_ENUM_FMT: u32 = 3225441794;
++pub const VIDIOC_G_INPUT: u32 = 1074026022;
++pub const VTPM_PROXY_IOC_NEW_DEV: u32 = 3222577408;
++pub const DFL_FPGA_FME_ERR_GET_IRQ_NUM: u32 = 1074050691;
++pub const ND_IOCTL_DIMM_FLAGS: u32 = 3221769731;
++pub const BTRFS_IOC_QUOTA_RESCAN: u32 = 2151715884;
++pub const MMTIMER_GETCOUNTER: u32 = 1074294025;
++pub const MATROXFB_GET_OUTPUT_MODE: u32 = 3221778170;
++pub const BTRFS_IOC_QUOTA_RESCAN_WAIT: u32 = 536908846;
++pub const RIO_CM_CHAN_BIND: u32 = 2148033285;
++pub const HIDIOCGRDESC: u32 = 1342457858;
++pub const MGSL_IOCGIF: u32 = 536898827;
++pub const VIDIOC_S_OUTPUT: u32 = 3221509679;
++pub const HIDIOCGREPORTINFO: u32 = 3222030345;
++pub const WDIOC_GETBOOTSTATUS: u32 = 1074026242;
++pub const VDUSE_VQ_GET_INFO: u32 = 3224404245;
++pub const ACRN_IOCTL_ASSIGN_PCIDEV: u32 = 2149884501;
++pub const BLKGETDISKSEQ: u32 = 1074270848;
++pub const ACRN_IOCTL_PM_GET_CPU_STATE: u32 = 3221791328;
++pub const ACRN_IOCTL_DESTROY_VM: u32 = 536912401;
++pub const ACRN_IOCTL_SET_PTDEV_INTR: u32 = 2148835923;
++pub const ACRN_IOCTL_CREATE_IOREQ_CLIENT: u32 = 536912434;
++pub const ACRN_IOCTL_IRQFD: u32 = 2149098097;
++pub const ACRN_IOCTL_CREATE_VM: u32 = 3224412688;
++pub const ACRN_IOCTL_INJECT_MSI: u32 = 2148573731;
++pub const ACRN_IOCTL_ATTACH_IOREQ_CLIENT: u32 = 536912435;
++pub const ACRN_IOCTL_RESET_PTDEV_INTR: u32 = 2148835924;
++pub const ACRN_IOCTL_NOTIFY_REQUEST_FINISH: u32 = 2148049457;
++pub const ACRN_IOCTL_SET_IRQLINE: u32 = 2148049445;
++pub const ACRN_IOCTL_START_VM: u32 = 536912402;
++pub const ACRN_IOCTL_SET_VCPU_REGS: u32 = 2166923798;
++pub const ACRN_IOCTL_SET_MEMSEG: u32 = 2149622337;
++pub const ACRN_IOCTL_PAUSE_VM: u32 = 536912403;
++pub const ACRN_IOCTL_CLEAR_VM_IOREQ: u32 = 536912437;
++pub const ACRN_IOCTL_UNSET_MEMSEG: u32 = 2149622338;
++pub const ACRN_IOCTL_IOEVENTFD: u32 = 2149622384;
++pub const ACRN_IOCTL_DEASSIGN_PCIDEV: u32 = 2149884502;
++pub const ACRN_IOCTL_RESET_VM: u32 = 536912405;
++pub const ACRN_IOCTL_DESTROY_IOREQ_CLIENT: u32 = 536912436;
++pub const ACRN_IOCTL_VM_INTR_MONITOR: u32 = 2148049444;
+diff --git a/vendor/linux-raw-sys-0.4.14/src/sw_64/loop_device.rs b/vendor/linux-raw-sys-0.4.14/src/sw_64/loop_device.rs
+new file mode 100644
+index 00000000000..2b4aae0f0f1
+--- /dev/null
++++ b/vendor/linux-raw-sys-0.4.14/src/sw_64/loop_device.rs
+@@ -0,0 +1,141 @@
++/* automatically generated by rust-bindgen 0.66.1 */
++
++pub type __kernel_daddr_t = crate::ctypes::c_long;
++pub type __kernel_long_t = crate::ctypes::c_long;
++pub type __kernel_ulong_t = crate::ctypes::c_ulong;
++pub type __kernel_ino_t = __kernel_ulong_t;
++pub type __kernel_mode_t = crate::ctypes::c_uint;
++pub type __kernel_pid_t = crate::ctypes::c_int;
++pub type __kernel_ipc_pid_t = crate::ctypes::c_int;
++pub type __kernel_uid_t = crate::ctypes::c_uint;
++pub type __kernel_gid_t = crate::ctypes::c_uint;
++pub type __kernel_suseconds_t = __kernel_long_t;
++pub type __kernel_uid32_t = crate::ctypes::c_uint;
++pub type __kernel_gid32_t = crate::ctypes::c_uint;
++pub type __kernel_old_uid_t = __kernel_uid_t;
++pub type __kernel_old_gid_t = __kernel_gid_t;
++pub type __kernel_old_dev_t = crate::ctypes::c_uint;
++pub type __kernel_size_t = __kernel_ulong_t;
++pub type __kernel_ssize_t = __kernel_long_t;
++pub type __kernel_ptrdiff_t = __kernel_long_t;
++pub type __kernel_off_t = __kernel_long_t;
++pub type __kernel_loff_t = crate::ctypes::c_longlong;
++pub type __kernel_old_time_t = __kernel_long_t;
++pub type __kernel_time_t = __kernel_long_t;
++pub type __kernel_time64_t = crate::ctypes::c_longlong;
++pub type __kernel_clock_t = __kernel_long_t;
++pub type __kernel_timer_t = crate::ctypes::c_int;
++pub type __kernel_clockid_t = crate::ctypes::c_int;
++pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
++pub type __kernel_uid16_t = crate::ctypes::c_ushort;
++pub type __kernel_gid16_t = crate::ctypes::c_ushort;
++pub type __s8 = crate::ctypes::c_schar;
++pub type __u8 = crate::ctypes::c_uchar;
++pub type __s16 = crate::ctypes::c_short;
++pub type __u16 = crate::ctypes::c_ushort;
++pub type __s32 = crate::ctypes::c_int;
++pub type __u32 = crate::ctypes::c_uint;
++pub type __s64 = crate::ctypes::c_long;
++pub type __u64 = crate::ctypes::c_ulong;
++pub type __kernel_key_t = crate::ctypes::c_int;
++pub type __kernel_mqd_t = crate::ctypes::c_int;
++pub type __le16 = __u16;
++pub type __be16 = __u16;
++pub type __le32 = __u32;
++pub type __be32 = __u32;
++pub type __le64 = __u64;
++pub type __be64 = __u64;
++pub type __sum16 = __u16;
++pub type __wsum = __u32;
++pub type __poll_t = crate::ctypes::c_uint;
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct loop_info {
++pub lo_number: crate::ctypes::c_int,
++pub lo_device: __kernel_old_dev_t,
++pub lo_inode: crate::ctypes::c_ulong,
++pub lo_rdevice: __kernel_old_dev_t,
++pub lo_offset: crate::ctypes::c_int,
++pub lo_encrypt_type: crate::ctypes::c_int,
++pub lo_encrypt_key_size: crate::ctypes::c_int,
++pub lo_flags: crate::ctypes::c_int,
++pub lo_name: [crate::ctypes::c_char; 64usize],
++pub lo_encrypt_key: [crate::ctypes::c_uchar; 32usize],
++pub lo_init: [crate::ctypes::c_ulong; 2usize],
++pub reserved: [crate::ctypes::c_char; 4usize],
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct loop_info64 {
++pub lo_device: __u64,
++pub lo_inode: __u64,
++pub lo_rdevice: __u64,
++pub lo_offset: __u64,
++pub lo_sizelimit: __u64,
++pub lo_number: __u32,
++pub lo_encrypt_type: __u32,
++pub lo_encrypt_key_size: __u32,
++pub lo_flags: __u32,
++pub lo_file_name: [__u8; 64usize],
++pub lo_crypt_name: [__u8; 64usize],
++pub lo_encrypt_key: [__u8; 32usize],
++pub lo_init: [__u64; 2usize],
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct loop_config {
++pub fd: __u32,
++pub block_size: __u32,
++pub info: loop_info64,
++pub __reserved: [__u64; 8usize],
++}
++pub const LO_NAME_SIZE: u32 = 64;
++pub const LO_KEY_SIZE: u32 = 32;
++pub const _MIPS_ISA_MIPS1: u32 = 1;
++pub const _MIPS_ISA_MIPS2: u32 = 2;
++pub const _MIPS_ISA_MIPS3: u32 = 3;
++pub const _MIPS_ISA_MIPS4: u32 = 4;
++pub const _MIPS_ISA_MIPS5: u32 = 5;
++pub const _MIPS_ISA_MIPS32: u32 = 6;
++pub const _MIPS_ISA_MIPS64: u32 = 7;
++pub const _MIPS_SIM_ABI32: u32 = 1;
++pub const _MIPS_SIM_NABI32: u32 = 2;
++pub const _MIPS_SIM_ABI64: u32 = 3;
++pub const LO_CRYPT_NONE: u32 = 0;
++pub const LO_CRYPT_XOR: u32 = 1;
++pub const LO_CRYPT_DES: u32 = 2;
++pub const LO_CRYPT_FISH2: u32 = 3;
++pub const LO_CRYPT_BLOW: u32 = 4;
++pub const LO_CRYPT_CAST128: u32 = 5;
++pub const LO_CRYPT_IDEA: u32 = 6;
++pub const LO_CRYPT_DUMMY: u32 = 9;
++pub const LO_CRYPT_SKIPJACK: u32 = 10;
++pub const LO_CRYPT_CRYPTOAPI: u32 = 18;
++pub const MAX_LO_CRYPT: u32 = 20;
++pub const LOOP_SET_FD: u32 = 19456;
++pub const LOOP_CLR_FD: u32 = 19457;
++pub const LOOP_SET_STATUS: u32 = 19458;
++pub const LOOP_GET_STATUS: u32 = 19459;
++pub const LOOP_SET_STATUS64: u32 = 19460;
++pub const LOOP_GET_STATUS64: u32 = 19461;
++pub const LOOP_CHANGE_FD: u32 = 19462;
++pub const LOOP_SET_CAPACITY: u32 = 19463;
++pub const LOOP_SET_DIRECT_IO: u32 = 19464;
++pub const LOOP_SET_BLOCK_SIZE: u32 = 19465;
++pub const LOOP_CONFIGURE: u32 = 19466;
++pub const LOOP_CTL_ADD: u32 = 19584;
++pub const LOOP_CTL_REMOVE: u32 = 19585;
++pub const LOOP_CTL_GET_FREE: u32 = 19586;
++pub const LO_FLAGS_READ_ONLY: _bindgen_ty_1 = _bindgen_ty_1::LO_FLAGS_READ_ONLY;
++pub const LO_FLAGS_AUTOCLEAR: _bindgen_ty_1 = _bindgen_ty_1::LO_FLAGS_AUTOCLEAR;
++pub const LO_FLAGS_PARTSCAN: _bindgen_ty_1 = _bindgen_ty_1::LO_FLAGS_PARTSCAN;
++pub const LO_FLAGS_DIRECT_IO: _bindgen_ty_1 = _bindgen_ty_1::LO_FLAGS_DIRECT_IO;
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_1 {
++LO_FLAGS_READ_ONLY = 1,
++LO_FLAGS_AUTOCLEAR = 4,
++LO_FLAGS_PARTSCAN = 8,
++LO_FLAGS_DIRECT_IO = 16,
++}
+diff --git a/vendor/linux-raw-sys-0.4.14/src/sw_64/mempolicy.rs b/vendor/linux-raw-sys-0.4.14/src/sw_64/mempolicy.rs
+new file mode 100644
+index 00000000000..2a726675893
+--- /dev/null
++++ b/vendor/linux-raw-sys-0.4.14/src/sw_64/mempolicy.rs
+@@ -0,0 +1,175 @@
++/* automatically generated by rust-bindgen 0.66.1 */
++
++pub const EPERM: u32 = 1;
++pub const ENOENT: u32 = 2;
++pub const ESRCH: u32 = 3;
++pub const EINTR: u32 = 4;
++pub const EIO: u32 = 5;
++pub const ENXIO: u32 = 6;
++pub const E2BIG: u32 = 7;
++pub const ENOEXEC: u32 = 8;
++pub const EBADF: u32 = 9;
++pub const ECHILD: u32 = 10;
++pub const EAGAIN: u32 = 11;
++pub const ENOMEM: u32 = 12;
++pub const EACCES: u32 = 13;
++pub const EFAULT: u32 = 14;
++pub const ENOTBLK: u32 = 15;
++pub const EBUSY: u32 = 16;
++pub const EEXIST: u32 = 17;
++pub const EXDEV: u32 = 18;
++pub const ENODEV: u32 = 19;
++pub const ENOTDIR: u32 = 20;
++pub const EISDIR: u32 = 21;
++pub const EINVAL: u32 = 22;
++pub const ENFILE: u32 = 23;
++pub const EMFILE: u32 = 24;
++pub const ENOTTY: u32 = 25;
++pub const ETXTBSY: u32 = 26;
++pub const EFBIG: u32 = 27;
++pub const ENOSPC: u32 = 28;
++pub const ESPIPE: u32 = 29;
++pub const EROFS: u32 = 30;
++pub const EMLINK: u32 = 31;
++pub const EPIPE: u32 = 32;
++pub const EDOM: u32 = 33;
++pub const ERANGE: u32 = 34;
++pub const ENOMSG: u32 = 35;
++pub const EIDRM: u32 = 36;
++pub const ECHRNG: u32 = 37;
++pub const EL2NSYNC: u32 = 38;
++pub const EL3HLT: u32 = 39;
++pub const EL3RST: u32 = 40;
++pub const ELNRNG: u32 = 41;
++pub const EUNATCH: u32 = 42;
++pub const ENOCSI: u32 = 43;
++pub const EL2HLT: u32 = 44;
++pub const EDEADLK: u32 = 45;
++pub const ENOLCK: u32 = 46;
++pub const EBADE: u32 = 50;
++pub const EBADR: u32 = 51;
++pub const EXFULL: u32 = 52;
++pub const ENOANO: u32 = 53;
++pub const EBADRQC: u32 = 54;
++pub const EBADSLT: u32 = 55;
++pub const EDEADLOCK: u32 = 56;
++pub const EBFONT: u32 = 59;
++pub const ENOSTR: u32 = 60;
++pub const ENODATA: u32 = 61;
++pub const ETIME: u32 = 62;
++pub const ENOSR: u32 = 63;
++pub const ENONET: u32 = 64;
++pub const ENOPKG: u32 = 65;
++pub const EREMOTE: u32 = 66;
++pub const ENOLINK: u32 = 67;
++pub const EADV: u32 = 68;
++pub const ESRMNT: u32 = 69;
++pub const ECOMM: u32 = 70;
++pub const EPROTO: u32 = 71;
++pub const EDOTDOT: u32 = 73;
++pub const EMULTIHOP: u32 = 74;
++pub const EBADMSG: u32 = 77;
++pub const ENAMETOOLONG: u32 = 78;
++pub const EOVERFLOW: u32 = 79;
++pub const ENOTUNIQ: u32 = 80;
++pub const EBADFD: u32 = 81;
++pub const EREMCHG: u32 = 82;
++pub const ELIBACC: u32 = 83;
++pub const ELIBBAD: u32 = 84;
++pub const ELIBSCN: u32 = 85;
++pub const ELIBMAX: u32 = 86;
++pub const ELIBEXEC: u32 = 87;
++pub const EILSEQ: u32 = 88;
++pub const ENOSYS: u32 = 89;
++pub const ELOOP: u32 = 90;
++pub const ERESTART: u32 = 91;
++pub const ESTRPIPE: u32 = 92;
++pub const ENOTEMPTY: u32 = 93;
++pub const EUSERS: u32 = 94;
++pub const ENOTSOCK: u32 = 95;
++pub const EDESTADDRREQ: u32 = 96;
++pub const EMSGSIZE: u32 = 97;
++pub const EPROTOTYPE: u32 = 98;
++pub const ENOPROTOOPT: u32 = 99;
++pub const EPROTONOSUPPORT: u32 = 120;
++pub const ESOCKTNOSUPPORT: u32 = 121;
++pub const EOPNOTSUPP: u32 = 122;
++pub const EPFNOSUPPORT: u32 = 123;
++pub const EAFNOSUPPORT: u32 = 124;
++pub const EADDRINUSE: u32 = 125;
++pub const EADDRNOTAVAIL: u32 = 126;
++pub const ENETDOWN: u32 = 127;
++pub const ENETUNREACH: u32 = 128;
++pub const ENETRESET: u32 = 129;
++pub const ECONNABORTED: u32 = 130;
++pub const ECONNRESET: u32 = 131;
++pub const ENOBUFS: u32 = 132;
++pub const EISCONN: u32 = 133;
++pub const ENOTCONN: u32 = 134;
++pub const EUCLEAN: u32 = 135;
++pub const ENOTNAM: u32 = 137;
++pub const ENAVAIL: u32 = 138;
++pub const EISNAM: u32 = 139;
++pub const EREMOTEIO: u32 = 140;
++pub const EINIT: u32 = 141;
++pub const EREMDEV: u32 = 142;
++pub const ESHUTDOWN: u32 = 143;
++pub const ETOOMANYREFS: u32 = 144;
++pub const ETIMEDOUT: u32 = 145;
++pub const ECONNREFUSED: u32 = 146;
++pub const EHOSTDOWN: u32 = 147;
++pub const EHOSTUNREACH: u32 = 148;
++pub const EWOULDBLOCK: u32 = 11;
++pub const EALREADY: u32 = 149;
++pub const EINPROGRESS: u32 = 150;
++pub const ESTALE: u32 = 151;
++pub const ECANCELED: u32 = 158;
++pub const ENOMEDIUM: u32 = 159;
++pub const EMEDIUMTYPE: u32 = 160;
++pub const ENOKEY: u32 = 161;
++pub const EKEYEXPIRED: u32 = 162;
++pub const EKEYREVOKED: u32 = 163;
++pub const EKEYREJECTED: u32 = 164;
++pub const EOWNERDEAD: u32 = 165;
++pub const ENOTRECOVERABLE: u32 = 166;
++pub const ERFKILL: u32 = 167;
++pub const EHWPOISON: u32 = 168;
++pub const EDQUOT: u32 = 1133;
++pub const MPOL_F_STATIC_NODES: u32 = 32768;
++pub const MPOL_F_RELATIVE_NODES: u32 = 16384;
++pub const MPOL_F_NUMA_BALANCING: u32 = 8192;
++pub const MPOL_MODE_FLAGS: u32 = 57344;
++pub const MPOL_F_NODE: u32 = 1;
++pub const MPOL_F_ADDR: u32 = 2;
++pub const MPOL_F_MEMS_ALLOWED: u32 = 4;
++pub const MPOL_MF_STRICT: u32 = 1;
++pub const MPOL_MF_MOVE: u32 = 2;
++pub const MPOL_MF_MOVE_ALL: u32 = 4;
++pub const MPOL_MF_LAZY: u32 = 8;
++pub const MPOL_MF_INTERNAL: u32 = 16;
++pub const MPOL_MF_VALID: u32 = 7;
++pub const MPOL_F_SHARED: u32 = 1;
++pub const MPOL_F_MOF: u32 = 8;
++pub const MPOL_F_MORON: u32 = 16;
++pub const RECLAIM_ZONE: u32 = 1;
++pub const RECLAIM_WRITE: u32 = 2;
++pub const RECLAIM_UNMAP: u32 = 4;
++pub const MPOL_DEFAULT: _bindgen_ty_1 = _bindgen_ty_1::MPOL_DEFAULT;
++pub const MPOL_PREFERRED: _bindgen_ty_1 = _bindgen_ty_1::MPOL_PREFERRED;
++pub const MPOL_BIND: _bindgen_ty_1 = _bindgen_ty_1::MPOL_BIND;
++pub const MPOL_INTERLEAVE: _bindgen_ty_1 = _bindgen_ty_1::MPOL_INTERLEAVE;
++pub const MPOL_LOCAL: _bindgen_ty_1 = _bindgen_ty_1::MPOL_LOCAL;
++pub const MPOL_PREFERRED_MANY: _bindgen_ty_1 = _bindgen_ty_1::MPOL_PREFERRED_MANY;
++pub const MPOL_MAX: _bindgen_ty_1 = _bindgen_ty_1::MPOL_MAX;
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_1 {
++MPOL_DEFAULT = 0,
++MPOL_PREFERRED = 1,
++MPOL_BIND = 2,
++MPOL_INTERLEAVE = 3,
++MPOL_LOCAL = 4,
++MPOL_PREFERRED_MANY = 5,
++MPOL_MAX = 6,
++}
+diff --git a/vendor/linux-raw-sys-0.4.14/src/sw_64/net.rs b/vendor/linux-raw-sys-0.4.14/src/sw_64/net.rs
+new file mode 100644
+index 00000000000..d7de5b49695
+--- /dev/null
++++ b/vendor/linux-raw-sys-0.4.14/src/sw_64/net.rs
+@@ -0,0 +1,2514 @@
++/* automatically generated by rust-bindgen 0.66.1 */
++
++pub type __s8 = crate::ctypes::c_schar;
++pub type __u8 = crate::ctypes::c_uchar;
++pub type __s16 = crate::ctypes::c_short;
++pub type __u16 = crate::ctypes::c_ushort;
++pub type __s32 = crate::ctypes::c_int;
++pub type __u32 = crate::ctypes::c_uint;
++pub type __s64 = crate::ctypes::c_long;
++pub type __u64 = crate::ctypes::c_ulong;
++pub type __kernel_key_t = crate::ctypes::c_int;
++pub type __kernel_mqd_t = crate::ctypes::c_int;
++pub type __kernel_daddr_t = crate::ctypes::c_long;
++pub type __kernel_long_t = crate::ctypes::c_long;
++pub type __kernel_ulong_t = crate::ctypes::c_ulong;
++pub type __kernel_ino_t = __kernel_ulong_t;
++pub type __kernel_mode_t = crate::ctypes::c_uint;
++pub type __kernel_pid_t = crate::ctypes::c_int;
++pub type __kernel_ipc_pid_t = crate::ctypes::c_int;
++pub type __kernel_uid_t = crate::ctypes::c_uint;
++pub type __kernel_gid_t = crate::ctypes::c_uint;
++pub type __kernel_suseconds_t = __kernel_long_t;
++pub type __kernel_uid32_t = crate::ctypes::c_uint;
++pub type __kernel_gid32_t = crate::ctypes::c_uint;
++pub type __kernel_old_uid_t = __kernel_uid_t;
++pub type __kernel_old_gid_t = __kernel_gid_t;
++pub type __kernel_old_dev_t = crate::ctypes::c_uint;
++pub type __kernel_size_t = __kernel_ulong_t;
++pub type __kernel_ssize_t = __kernel_long_t;
++pub type __kernel_ptrdiff_t = __kernel_long_t;
++pub type __kernel_off_t = __kernel_long_t;
++pub type __kernel_loff_t = crate::ctypes::c_longlong;
++pub type __kernel_old_time_t = __kernel_long_t;
++pub type __kernel_time_t = __kernel_long_t;
++pub type __kernel_time64_t = crate::ctypes::c_longlong;
++pub type __kernel_clock_t = __kernel_long_t;
++pub type __kernel_timer_t = crate::ctypes::c_int;
++pub type __kernel_clockid_t = crate::ctypes::c_int;
++pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
++pub type __kernel_uid16_t = crate::ctypes::c_ushort;
++pub type __kernel_gid16_t = crate::ctypes::c_ushort;
++pub type __le16 = __u16;
++pub type __be16 = __u16;
++pub type __le32 = __u32;
++pub type __be32 = __u32;
++pub type __le64 = __u64;
++pub type __be64 = __u64;
++pub type __sum16 = __u16;
++pub type __wsum = __u32;
++pub type __poll_t = crate::ctypes::c_uint;
++pub type __kernel_sa_family_t = crate::ctypes::c_ushort;
++pub type socklen_t = crate::ctypes::c_uint;
++#[repr(C)]
++#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
++pub struct __BindgenBitfieldUnit<Storage> {
++storage: Storage,
++}
++#[repr(C)]
++#[derive(Default)]
++pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
++#[repr(C)]
++pub struct __BindgenUnionField<T>(::core::marker::PhantomData<T>);
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub struct __kernel_sockaddr_storage {
++pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1 {
++pub ss_family: __kernel_sa_family_t,
++pub __data: [crate::ctypes::c_char; 126usize],
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct in_addr {
++pub s_addr: __be32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ip_mreq {
++pub imr_multiaddr: in_addr,
++pub imr_interface: in_addr,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ip_mreqn {
++pub imr_multiaddr: in_addr,
++pub imr_address: in_addr,
++pub imr_ifindex: crate::ctypes::c_int,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ip_mreq_source {
++pub imr_multiaddr: __be32,
++pub imr_interface: __be32,
++pub imr_sourceaddr: __be32,
++}
++#[repr(C)]
++pub struct ip_msfilter {
++pub imsf_multiaddr: __be32,
++pub imsf_interface: __be32,
++pub imsf_fmode: __u32,
++pub imsf_numsrc: __u32,
++pub __bindgen_anon_1: ip_msfilter__bindgen_ty_1,
++}
++#[repr(C)]
++pub struct ip_msfilter__bindgen_ty_1 {
++pub imsf_slist: __BindgenUnionField<[__be32; 1usize]>,
++pub __bindgen_anon_1: __BindgenUnionField<ip_msfilter__bindgen_ty_1__bindgen_ty_1>,
++pub bindgen_union_field: u32,
++}
++#[repr(C)]
++#[derive(Debug)]
++pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_1 {
++pub __empty_imsf_slist_flex: ip_msfilter__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1,
++pub imsf_slist_flex: __IncompleteArrayField<__be32>,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub struct group_req {
++pub gr_interface: __u32,
++pub gr_group: __kernel_sockaddr_storage,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub struct group_source_req {
++pub gsr_interface: __u32,
++pub gsr_group: __kernel_sockaddr_storage,
++pub gsr_source: __kernel_sockaddr_storage,
++}
++#[repr(C)]
++pub struct group_filter {
++pub __bindgen_anon_1: group_filter__bindgen_ty_1,
++}
++#[repr(C)]
++pub struct group_filter__bindgen_ty_1 {
++pub __bindgen_anon_1: __BindgenUnionField<group_filter__bindgen_ty_1__bindgen_ty_1>,
++pub __bindgen_anon_2: __BindgenUnionField<group_filter__bindgen_ty_1__bindgen_ty_2>,
++pub bindgen_union_field: [u64; 34usize],
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub struct group_filter__bindgen_ty_1__bindgen_ty_1 {
++pub gf_interface_aux: __u32,
++pub gf_group_aux: __kernel_sockaddr_storage,
++pub gf_fmode_aux: __u32,
++pub gf_numsrc_aux: __u32,
++pub gf_slist: [__kernel_sockaddr_storage; 1usize],
++}
++#[repr(C)]
++pub struct group_filter__bindgen_ty_1__bindgen_ty_2 {
++pub gf_interface: __u32,
++pub gf_group: __kernel_sockaddr_storage,
++pub gf_fmode: __u32,
++pub gf_numsrc: __u32,
++pub gf_slist_flex: __IncompleteArrayField<__kernel_sockaddr_storage>,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct in_pktinfo {
++pub ipi_ifindex: crate::ctypes::c_int,
++pub ipi_spec_dst: in_addr,
++pub ipi_addr: in_addr,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct sockaddr_in {
++pub sin_family: __kernel_sa_family_t,
++pub sin_port: __be16,
++pub sin_addr: in_addr,
++pub __pad: [crate::ctypes::c_uchar; 8usize],
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub struct iphdr {
++pub _bitfield_align_1: [u8; 0],
++pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
++pub tos: __u8,
++pub tot_len: __be16,
++pub id: __be16,
++pub frag_off: __be16,
++pub ttl: __u8,
++pub protocol: __u8,
++pub check: __sum16,
++pub __bindgen_anon_1: iphdr__bindgen_ty_1,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct iphdr__bindgen_ty_1__bindgen_ty_1 {
++pub saddr: __be32,
++pub daddr: __be32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct iphdr__bindgen_ty_1__bindgen_ty_2 {
++pub saddr: __be32,
++pub daddr: __be32,
++}
++#[repr(C)]
++#[derive(Debug)]
++pub struct ip_auth_hdr {
++pub nexthdr: __u8,
++pub hdrlen: __u8,
++pub reserved: __be16,
++pub spi: __be32,
++pub seq_no: __be32,
++pub auth_data: __IncompleteArrayField<__u8>,
++}
++#[repr(C)]
++#[derive(Debug)]
++pub struct ip_esp_hdr {
++pub spi: __be32,
++pub seq_no: __be32,
++pub enc_data: __IncompleteArrayField<__u8>,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ip_comp_hdr {
++pub nexthdr: __u8,
++pub flags: __u8,
++pub cpi: __be16,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ip_beet_phdr {
++pub nexthdr: __u8,
++pub hdrlen: __u8,
++pub padlen: __u8,
++pub reserved: __u8,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub struct in6_addr {
++pub in6_u: in6_addr__bindgen_ty_1,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub struct sockaddr_in6 {
++pub sin6_family: crate::ctypes::c_ushort,
++pub sin6_port: __be16,
++pub sin6_flowinfo: __be32,
++pub sin6_addr: in6_addr,
++pub sin6_scope_id: __u32,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub struct ipv6_mreq {
++pub ipv6mr_multiaddr: in6_addr,
++pub ipv6mr_ifindex: crate::ctypes::c_int,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub struct in6_flowlabel_req {
++pub flr_dst: in6_addr,
++pub flr_label: __be32,
++pub flr_action: __u8,
++pub flr_share: __u8,
++pub flr_flags: __u16,
++pub flr_expires: __u16,
++pub flr_linger: __u16,
++pub __flr_pad: __u32,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub struct in6_pktinfo {
++pub ipi6_addr: in6_addr,
++pub ipi6_ifindex: crate::ctypes::c_int,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub struct ip6_mtuinfo {
++pub ip6m_addr: sockaddr_in6,
++pub ip6m_mtu: __u32,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub struct in6_ifreq {
++pub ifr6_addr: in6_addr,
++pub ifr6_prefixlen: __u32,
++pub ifr6_ifindex: crate::ctypes::c_int,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ipv6_rt_hdr {
++pub nexthdr: __u8,
++pub hdrlen: __u8,
++pub type_: __u8,
++pub segments_left: __u8,
++}
++#[repr(C, packed)]
++#[derive(Debug, Copy, Clone)]
++pub struct ipv6_opt_hdr {
++pub nexthdr: __u8,
++pub hdrlen: __u8,
++}
++#[repr(C)]
++pub struct rt0_hdr {
++pub rt_hdr: ipv6_rt_hdr,
++pub reserved: __u32,
++pub addr: __IncompleteArrayField<in6_addr>,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub struct rt2_hdr {
++pub rt_hdr: ipv6_rt_hdr,
++pub reserved: __u32,
++pub addr: in6_addr,
++}
++#[repr(C, packed)]
++#[derive(Copy, Clone)]
++pub struct ipv6_destopt_hao {
++pub type_: __u8,
++pub length: __u8,
++pub addr: in6_addr,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub struct ipv6hdr {
++pub _bitfield_align_1: [u8; 0],
++pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
++pub flow_lbl: [__u8; 3usize],
++pub payload_len: __be16,
++pub nexthdr: __u8,
++pub hop_limit: __u8,
++pub __bindgen_anon_1: ipv6hdr__bindgen_ty_1,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub struct ipv6hdr__bindgen_ty_1__bindgen_ty_1 {
++pub saddr: in6_addr,
++pub daddr: in6_addr,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub struct ipv6hdr__bindgen_ty_1__bindgen_ty_2 {
++pub saddr: in6_addr,
++pub daddr: in6_addr,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct tcphdr {
++pub source: __be16,
++pub dest: __be16,
++pub seq: __be32,
++pub ack_seq: __be32,
++pub _bitfield_align_1: [u8; 0],
++pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
++pub window: __be16,
++pub check: __sum16,
++pub urg_ptr: __be16,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct tcp_repair_opt {
++pub opt_code: __u32,
++pub opt_val: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct tcp_repair_window {
++pub snd_wl1: __u32,
++pub snd_wnd: __u32,
++pub max_window: __u32,
++pub rcv_wnd: __u32,
++pub rcv_wup: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct tcp_info {
++pub tcpi_state: __u8,
++pub tcpi_ca_state: __u8,
++pub tcpi_retransmits: __u8,
++pub tcpi_probes: __u8,
++pub tcpi_backoff: __u8,
++pub tcpi_options: __u8,
++pub _bitfield_align_1: [u8; 0],
++pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
++pub tcpi_rto: __u32,
++pub tcpi_ato: __u32,
++pub tcpi_snd_mss: __u32,
++pub tcpi_rcv_mss: __u32,
++pub tcpi_unacked: __u32,
++pub tcpi_sacked: __u32,
++pub tcpi_lost: __u32,
++pub tcpi_retrans: __u32,
++pub tcpi_fackets: __u32,
++pub tcpi_last_data_sent: __u32,
++pub tcpi_last_ack_sent: __u32,
++pub tcpi_last_data_recv: __u32,
++pub tcpi_last_ack_recv: __u32,
++pub tcpi_pmtu: __u32,
++pub tcpi_rcv_ssthresh: __u32,
++pub tcpi_rtt: __u32,
++pub tcpi_rttvar: __u32,
++pub tcpi_snd_ssthresh: __u32,
++pub tcpi_snd_cwnd: __u32,
++pub tcpi_advmss: __u32,
++pub tcpi_reordering: __u32,
++pub tcpi_rcv_rtt: __u32,
++pub tcpi_rcv_space: __u32,
++pub tcpi_total_retrans: __u32,
++pub tcpi_pacing_rate: __u64,
++pub tcpi_max_pacing_rate: __u64,
++pub tcpi_bytes_acked: __u64,
++pub tcpi_bytes_received: __u64,
++pub tcpi_segs_out: __u32,
++pub tcpi_segs_in: __u32,
++pub tcpi_notsent_bytes: __u32,
++pub tcpi_min_rtt: __u32,
++pub tcpi_data_segs_in: __u32,
++pub tcpi_data_segs_out: __u32,
++pub tcpi_delivery_rate: __u64,
++pub tcpi_busy_time: __u64,
++pub tcpi_rwnd_limited: __u64,
++pub tcpi_sndbuf_limited: __u64,
++pub tcpi_delivered: __u32,
++pub tcpi_delivered_ce: __u32,
++pub tcpi_bytes_sent: __u64,
++pub tcpi_bytes_retrans: __u64,
++pub tcpi_dsack_dups: __u32,
++pub tcpi_reord_seen: __u32,
++pub tcpi_rcv_ooopack: __u32,
++pub tcpi_snd_wnd: __u32,
++pub tcpi_rcv_wnd: __u32,
++pub tcpi_rehash: __u32,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub struct tcp_md5sig {
++pub tcpm_addr: __kernel_sockaddr_storage,
++pub tcpm_flags: __u8,
++pub tcpm_prefixlen: __u8,
++pub tcpm_keylen: __u16,
++pub tcpm_ifindex: crate::ctypes::c_int,
++pub tcpm_key: [__u8; 80usize],
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct tcp_diag_md5sig {
++pub tcpm_family: __u8,
++pub tcpm_prefixlen: __u8,
++pub tcpm_keylen: __u16,
++pub tcpm_addr: [__be32; 4usize],
++pub tcpm_key: [__u8; 80usize],
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct tcp_zerocopy_receive {
++pub address: __u64,
++pub length: __u32,
++pub recv_skip_hint: __u32,
++pub inq: __u32,
++pub err: __s32,
++pub copybuf_address: __u64,
++pub copybuf_len: __s32,
++pub flags: __u32,
++pub msg_control: __u64,
++pub msg_controllen: __u64,
++pub msg_flags: __u32,
++pub reserved: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct sockaddr_un {
++pub sun_family: __kernel_sa_family_t,
++pub sun_path: [crate::ctypes::c_char; 108usize],
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub struct sockaddr {
++pub __storage: __kernel_sockaddr_storage,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct sync_serial_settings {
++pub clock_rate: crate::ctypes::c_uint,
++pub clock_type: crate::ctypes::c_uint,
++pub loopback: crate::ctypes::c_ushort,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct te1_settings {
++pub clock_rate: crate::ctypes::c_uint,
++pub clock_type: crate::ctypes::c_uint,
++pub loopback: crate::ctypes::c_ushort,
++pub slot_map: crate::ctypes::c_uint,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct raw_hdlc_proto {
++pub encoding: crate::ctypes::c_ushort,
++pub parity: crate::ctypes::c_ushort,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct fr_proto {
++pub t391: crate::ctypes::c_uint,
++pub t392: crate::ctypes::c_uint,
++pub n391: crate::ctypes::c_uint,
++pub n392: crate::ctypes::c_uint,
++pub n393: crate::ctypes::c_uint,
++pub lmi: crate::ctypes::c_ushort,
++pub dce: crate::ctypes::c_ushort,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct fr_proto_pvc {
++pub dlci: crate::ctypes::c_uint,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct fr_proto_pvc_info {
++pub dlci: crate::ctypes::c_uint,
++pub master: [crate::ctypes::c_char; 16usize],
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct cisco_proto {
++pub interval: crate::ctypes::c_uint,
++pub timeout: crate::ctypes::c_uint,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct x25_hdlc_proto {
++pub dce: crate::ctypes::c_ushort,
++pub modulo: crate::ctypes::c_uint,
++pub window: crate::ctypes::c_uint,
++pub t1: crate::ctypes::c_uint,
++pub t2: crate::ctypes::c_uint,
++pub n2: crate::ctypes::c_uint,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ifmap {
++pub mem_start: crate::ctypes::c_ulong,
++pub mem_end: crate::ctypes::c_ulong,
++pub base_addr: crate::ctypes::c_ushort,
++pub irq: crate::ctypes::c_uchar,
++pub dma: crate::ctypes::c_uchar,
++pub port: crate::ctypes::c_uchar,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub struct if_settings {
++pub type_: crate::ctypes::c_uint,
++pub size: crate::ctypes::c_uint,
++pub ifs_ifsu: if_settings__bindgen_ty_1,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub struct ifreq {
++pub ifr_ifrn: ifreq__bindgen_ty_1,
++pub ifr_ifru: ifreq__bindgen_ty_2,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub struct ifconf {
++pub ifc_len: crate::ctypes::c_int,
++pub ifc_ifcu: ifconf__bindgen_ty_1,
++}
++#[repr(C)]
++pub struct xt_entry_match {
++pub u: xt_entry_match__bindgen_ty_1,
++pub data: __IncompleteArrayField<crate::ctypes::c_uchar>,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct xt_entry_match__bindgen_ty_1__bindgen_ty_1 {
++pub match_size: __u16,
++pub name: [crate::ctypes::c_char; 29usize],
++pub revision: __u8,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct xt_entry_match__bindgen_ty_1__bindgen_ty_2 {
++pub match_size: __u16,
++pub match_: *mut xt_match,
++}
++#[repr(C)]
++pub struct xt_entry_target {
++pub u: xt_entry_target__bindgen_ty_1,
++pub data: __IncompleteArrayField<crate::ctypes::c_uchar>,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct xt_entry_target__bindgen_ty_1__bindgen_ty_1 {
++pub target_size: __u16,
++pub name: [crate::ctypes::c_char; 29usize],
++pub revision: __u8,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct xt_entry_target__bindgen_ty_1__bindgen_ty_2 {
++pub target_size: __u16,
++pub target: *mut xt_target,
++}
++#[repr(C)]
++pub struct xt_standard_target {
++pub target: xt_entry_target,
++pub verdict: crate::ctypes::c_int,
++}
++#[repr(C)]
++pub struct xt_error_target {
++pub target: xt_entry_target,
++pub errorname: [crate::ctypes::c_char; 30usize],
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct xt_get_revision {
++pub name: [crate::ctypes::c_char; 29usize],
++pub revision: __u8,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct _xt_align {
++pub u8_: __u8,
++pub u16_: __u16,
++pub u32_: __u32,
++pub u64_: __u64,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct xt_counters {
++pub pcnt: __u64,
++pub bcnt: __u64,
++}
++#[repr(C)]
++#[derive(Debug)]
++pub struct xt_counters_info {
++pub name: [crate::ctypes::c_char; 32usize],
++pub num_counters: crate::ctypes::c_uint,
++pub counters: __IncompleteArrayField<xt_counters>,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct xt_tcp {
++pub spts: [__u16; 2usize],
++pub dpts: [__u16; 2usize],
++pub option: __u8,
++pub flg_mask: __u8,
++pub flg_cmp: __u8,
++pub invflags: __u8,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct xt_udp {
++pub spts: [__u16; 2usize],
++pub dpts: [__u16; 2usize],
++pub invflags: __u8,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub struct ip6t_ip6 {
++pub src: in6_addr,
++pub dst: in6_addr,
++pub smsk: in6_addr,
++pub dmsk: in6_addr,
++pub iniface: [crate::ctypes::c_char; 16usize],
++pub outiface: [crate::ctypes::c_char; 16usize],
++pub iniface_mask: [crate::ctypes::c_uchar; 16usize],
++pub outiface_mask: [crate::ctypes::c_uchar; 16usize],
++pub proto: __u16,
++pub tos: __u8,
++pub flags: __u8,
++pub invflags: __u8,
++}
++#[repr(C)]
++pub struct ip6t_entry {
++pub ipv6: ip6t_ip6,
++pub nfcache: crate::ctypes::c_uint,
++pub target_offset: __u16,
++pub next_offset: __u16,
++pub comefrom: crate::ctypes::c_uint,
++pub counters: xt_counters,
++pub elems: __IncompleteArrayField<crate::ctypes::c_uchar>,
++}
++#[repr(C)]
++pub struct ip6t_standard {
++pub entry: ip6t_entry,
++pub target: xt_standard_target,
++}
++#[repr(C)]
++pub struct ip6t_error {
++pub entry: ip6t_entry,
++pub target: xt_error_target,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ip6t_icmp {
++pub type_: __u8,
++pub code: [__u8; 2usize],
++pub invflags: __u8,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ip6t_getinfo {
++pub name: [crate::ctypes::c_char; 32usize],
++pub valid_hooks: crate::ctypes::c_uint,
++pub hook_entry: [crate::ctypes::c_uint; 5usize],
++pub underflow: [crate::ctypes::c_uint; 5usize],
++pub num_entries: crate::ctypes::c_uint,
++pub size: crate::ctypes::c_uint,
++}
++#[repr(C)]
++pub struct ip6t_replace {
++pub name: [crate::ctypes::c_char; 32usize],
++pub valid_hooks: crate::ctypes::c_uint,
++pub num_entries: crate::ctypes::c_uint,
++pub size: crate::ctypes::c_uint,
++pub hook_entry: [crate::ctypes::c_uint; 5usize],
++pub underflow: [crate::ctypes::c_uint; 5usize],
++pub num_counters: crate::ctypes::c_uint,
++pub counters: *mut xt_counters,
++pub entries: __IncompleteArrayField<ip6t_entry>,
++}
++#[repr(C)]
++pub struct ip6t_get_entries {
++pub name: [crate::ctypes::c_char; 32usize],
++pub size: crate::ctypes::c_uint,
++pub entrytable: __IncompleteArrayField<ip6t_entry>,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct linger {
++pub l_onoff: crate::ctypes::c_int,
++pub l_linger: crate::ctypes::c_int,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct msghdr {
++pub msg_name: *mut crate::ctypes::c_void,
++pub msg_namelen: crate::ctypes::c_int,
++pub msg_iov: *mut iovec,
++pub msg_iovlen: usize,
++pub msg_control: *mut crate::ctypes::c_void,
++pub msg_controllen: usize,
++pub msg_flags: crate::ctypes::c_uint,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct cmsghdr {
++pub cmsg_len: usize,
++pub cmsg_level: crate::ctypes::c_int,
++pub cmsg_type: crate::ctypes::c_int,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ucred {
++pub pid: __u32,
++pub uid: __u32,
++pub gid: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct mmsghdr {
++pub msg_hdr: msghdr,
++pub msg_len: crate::ctypes::c_uint,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct xt_match {
++pub _address: u8,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct xt_target {
++pub _address: u8,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct iovec {
++pub _address: u8,
++}
++pub const _MIPS_ISA_MIPS1: u32 = 1;
++pub const _MIPS_ISA_MIPS2: u32 = 2;
++pub const _MIPS_ISA_MIPS3: u32 = 3;
++pub const _MIPS_ISA_MIPS4: u32 = 4;
++pub const _MIPS_ISA_MIPS5: u32 = 5;
++pub const _MIPS_ISA_MIPS32: u32 = 6;
++pub const _MIPS_ISA_MIPS64: u32 = 7;
++pub const _MIPS_SIM_ABI32: u32 = 1;
++pub const _MIPS_SIM_NABI32: u32 = 2;
++pub const _MIPS_SIM_ABI64: u32 = 3;
++pub const _K_SS_MAXSIZE: u32 = 128;
++pub const SOCK_SNDBUF_LOCK: u32 = 1;
++pub const SOCK_RCVBUF_LOCK: u32 = 2;
++pub const SOCK_BUF_LOCK_MASK: u32 = 3;
++pub const SOCK_TXREHASH_DEFAULT: u32 = 255;
++pub const SOCK_TXREHASH_DISABLED: u32 = 0;
++pub const SOCK_TXREHASH_ENABLED: u32 = 1;
++pub const IP_TOS: u32 = 1;
++pub const IP_TTL: u32 = 2;
++pub const IP_HDRINCL: u32 = 3;
++pub const IP_OPTIONS: u32 = 4;
++pub const IP_ROUTER_ALERT: u32 = 5;
++pub const IP_RECVOPTS: u32 = 6;
++pub const IP_RETOPTS: u32 = 7;
++pub const IP_PKTINFO: u32 = 8;
++pub const IP_PKTOPTIONS: u32 = 9;
++pub const IP_MTU_DISCOVER: u32 = 10;
++pub const IP_RECVERR: u32 = 11;
++pub const IP_RECVTTL: u32 = 12;
++pub const IP_RECVTOS: u32 = 13;
++pub const IP_MTU: u32 = 14;
++pub const IP_FREEBIND: u32 = 15;
++pub const IP_IPSEC_POLICY: u32 = 16;
++pub const IP_XFRM_POLICY: u32 = 17;
++pub const IP_PASSSEC: u32 = 18;
++pub const IP_TRANSPARENT: u32 = 19;
++pub const IP_RECVRETOPTS: u32 = 7;
++pub const IP_ORIGDSTADDR: u32 = 20;
++pub const IP_RECVORIGDSTADDR: u32 = 20;
++pub const IP_MINTTL: u32 = 21;
++pub const IP_NODEFRAG: u32 = 22;
++pub const IP_CHECKSUM: u32 = 23;
++pub const IP_BIND_ADDRESS_NO_PORT: u32 = 24;
++pub const IP_RECVFRAGSIZE: u32 = 25;
++pub const IP_RECVERR_RFC4884: u32 = 26;
++pub const IP_PMTUDISC_DONT: u32 = 0;
++pub const IP_PMTUDISC_WANT: u32 = 1;
++pub const IP_PMTUDISC_DO: u32 = 2;
++pub const IP_PMTUDISC_PROBE: u32 = 3;
++pub const IP_PMTUDISC_INTERFACE: u32 = 4;
++pub const IP_PMTUDISC_OMIT: u32 = 5;
++pub const IP_MULTICAST_IF: u32 = 32;
++pub const IP_MULTICAST_TTL: u32 = 33;
++pub const IP_MULTICAST_LOOP: u32 = 34;
++pub const IP_ADD_MEMBERSHIP: u32 = 35;
++pub const IP_DROP_MEMBERSHIP: u32 = 36;
++pub const IP_UNBLOCK_SOURCE: u32 = 37;
++pub const IP_BLOCK_SOURCE: u32 = 38;
++pub const IP_ADD_SOURCE_MEMBERSHIP: u32 = 39;
++pub const IP_DROP_SOURCE_MEMBERSHIP: u32 = 40;
++pub const IP_MSFILTER: u32 = 41;
++pub const MCAST_JOIN_GROUP: u32 = 42;
++pub const MCAST_BLOCK_SOURCE: u32 = 43;
++pub const MCAST_UNBLOCK_SOURCE: u32 = 44;
++pub const MCAST_LEAVE_GROUP: u32 = 45;
++pub const MCAST_JOIN_SOURCE_GROUP: u32 = 46;
++pub const MCAST_LEAVE_SOURCE_GROUP: u32 = 47;
++pub const MCAST_MSFILTER: u32 = 48;
++pub const IP_MULTICAST_ALL: u32 = 49;
++pub const IP_UNICAST_IF: u32 = 50;
++pub const IP_LOCAL_PORT_RANGE: u32 = 51;
++pub const MCAST_EXCLUDE: u32 = 0;
++pub const MCAST_INCLUDE: u32 = 1;
++pub const IP_DEFAULT_MULTICAST_TTL: u32 = 1;
++pub const IP_DEFAULT_MULTICAST_LOOP: u32 = 1;
++pub const __SOCK_SIZE__: u32 = 16;
++pub const IN_CLASSA_NET: u32 = 4278190080;
++pub const IN_CLASSA_NSHIFT: u32 = 24;
++pub const IN_CLASSA_HOST: u32 = 16777215;
++pub const IN_CLASSA_MAX: u32 = 128;
++pub const IN_CLASSB_NET: u32 = 4294901760;
++pub const IN_CLASSB_NSHIFT: u32 = 16;
++pub const IN_CLASSB_HOST: u32 = 65535;
++pub const IN_CLASSB_MAX: u32 = 65536;
++pub const IN_CLASSC_NET: u32 = 4294967040;
++pub const IN_CLASSC_NSHIFT: u32 = 8;
++pub const IN_CLASSC_HOST: u32 = 255;
++pub const IN_MULTICAST_NET: u32 = 3758096384;
++pub const IN_CLASSE_NET: u32 = 4294967295;
++pub const IN_CLASSE_NSHIFT: u32 = 0;
++pub const IN_LOOPBACKNET: u32 = 127;
++pub const INADDR_LOOPBACK: u32 = 2130706433;
++pub const INADDR_UNSPEC_GROUP: u32 = 3758096384;
++pub const INADDR_ALLHOSTS_GROUP: u32 = 3758096385;
++pub const INADDR_ALLRTRS_GROUP: u32 = 3758096386;
++pub const INADDR_ALLSNOOPERS_GROUP: u32 = 3758096490;
++pub const INADDR_MAX_LOCAL_GROUP: u32 = 3758096639;
++pub const __BIG_ENDIAN: u32 = 4321;
++pub const IPTOS_TOS_MASK: u32 = 30;
++pub const IPTOS_LOWDELAY: u32 = 16;
++pub const IPTOS_THROUGHPUT: u32 = 8;
++pub const IPTOS_RELIABILITY: u32 = 4;
++pub const IPTOS_MINCOST: u32 = 2;
++pub const IPTOS_PREC_MASK: u32 = 224;
++pub const IPTOS_PREC_NETCONTROL: u32 = 224;
++pub const IPTOS_PREC_INTERNETCONTROL: u32 = 192;
++pub const IPTOS_PREC_CRITIC_ECP: u32 = 160;
++pub const IPTOS_PREC_FLASHOVERRIDE: u32 = 128;
++pub const IPTOS_PREC_FLASH: u32 = 96;
++pub const IPTOS_PREC_IMMEDIATE: u32 = 64;
++pub const IPTOS_PREC_PRIORITY: u32 = 32;
++pub const IPTOS_PREC_ROUTINE: u32 = 0;
++pub const IPOPT_COPY: u32 = 128;
++pub const IPOPT_CLASS_MASK: u32 = 96;
++pub const IPOPT_NUMBER_MASK: u32 = 31;
++pub const IPOPT_CONTROL: u32 = 0;
++pub const IPOPT_RESERVED1: u32 = 32;
++pub const IPOPT_MEASUREMENT: u32 = 64;
++pub const IPOPT_RESERVED2: u32 = 96;
++pub const IPOPT_END: u32 = 0;
++pub const IPOPT_NOOP: u32 = 1;
++pub const IPOPT_SEC: u32 = 130;
++pub const IPOPT_LSRR: u32 = 131;
++pub const IPOPT_TIMESTAMP: u32 = 68;
++pub const IPOPT_CIPSO: u32 = 134;
++pub const IPOPT_RR: u32 = 7;
++pub const IPOPT_SID: u32 = 136;
++pub const IPOPT_SSRR: u32 = 137;
++pub const IPOPT_RA: u32 = 148;
++pub const IPVERSION: u32 = 4;
++pub const MAXTTL: u32 = 255;
++pub const IPDEFTTL: u32 = 64;
++pub const IPOPT_OPTVAL: u32 = 0;
++pub const IPOPT_OLEN: u32 = 1;
++pub const IPOPT_OFFSET: u32 = 2;
++pub const IPOPT_MINOFF: u32 = 4;
++pub const MAX_IPOPTLEN: u32 = 40;
++pub const IPOPT_NOP: u32 = 1;
++pub const IPOPT_EOL: u32 = 0;
++pub const IPOPT_TS: u32 = 68;
++pub const IPOPT_TS_TSONLY: u32 = 0;
++pub const IPOPT_TS_TSANDADDR: u32 = 1;
++pub const IPOPT_TS_PRESPEC: u32 = 3;
++pub const IPV4_BEET_PHMAXLEN: u32 = 8;
++pub const IPV6_FL_A_GET: u32 = 0;
++pub const IPV6_FL_A_PUT: u32 = 1;
++pub const IPV6_FL_A_RENEW: u32 = 2;
++pub const IPV6_FL_F_CREATE: u32 = 1;
++pub const IPV6_FL_F_EXCL: u32 = 2;
++pub const IPV6_FL_F_REFLECT: u32 = 4;
++pub const IPV6_FL_F_REMOTE: u32 = 8;
++pub const IPV6_FL_S_NONE: u32 = 0;
++pub const IPV6_FL_S_EXCL: u32 = 1;
++pub const IPV6_FL_S_PROCESS: u32 = 2;
++pub const IPV6_FL_S_USER: u32 = 3;
++pub const IPV6_FL_S_ANY: u32 = 255;
++pub const IPV6_FLOWINFO_FLOWLABEL: u32 = 1048575;
++pub const IPV6_FLOWINFO_PRIORITY: u32 = 267386880;
++pub const IPV6_PRIORITY_UNCHARACTERIZED: u32 = 0;
++pub const IPV6_PRIORITY_FILLER: u32 = 256;
++pub const IPV6_PRIORITY_UNATTENDED: u32 = 512;
++pub const IPV6_PRIORITY_RESERVED1: u32 = 768;
++pub const IPV6_PRIORITY_BULK: u32 = 1024;
++pub const IPV6_PRIORITY_RESERVED2: u32 = 1280;
++pub const IPV6_PRIORITY_INTERACTIVE: u32 = 1536;
++pub const IPV6_PRIORITY_CONTROL: u32 = 1792;
++pub const IPV6_PRIORITY_8: u32 = 2048;
++pub const IPV6_PRIORITY_9: u32 = 2304;
++pub const IPV6_PRIORITY_10: u32 = 2560;
++pub const IPV6_PRIORITY_11: u32 = 2816;
++pub const IPV6_PRIORITY_12: u32 = 3072;
++pub const IPV6_PRIORITY_13: u32 = 3328;
++pub const IPV6_PRIORITY_14: u32 = 3584;
++pub const IPV6_PRIORITY_15: u32 = 3840;
++pub const IPPROTO_HOPOPTS: u32 = 0;
++pub const IPPROTO_ROUTING: u32 = 43;
++pub const IPPROTO_FRAGMENT: u32 = 44;
++pub const IPPROTO_ICMPV6: u32 = 58;
++pub const IPPROTO_NONE: u32 = 59;
++pub const IPPROTO_DSTOPTS: u32 = 60;
++pub const IPPROTO_MH: u32 = 135;
++pub const IPV6_TLV_PAD1: u32 = 0;
++pub const IPV6_TLV_PADN: u32 = 1;
++pub const IPV6_TLV_ROUTERALERT: u32 = 5;
++pub const IPV6_TLV_CALIPSO: u32 = 7;
++pub const IPV6_TLV_IOAM: u32 = 49;
++pub const IPV6_TLV_JUMBO: u32 = 194;
++pub const IPV6_TLV_HAO: u32 = 201;
++pub const IPV6_ADDRFORM: u32 = 1;
++pub const IPV6_2292PKTINFO: u32 = 2;
++pub const IPV6_2292HOPOPTS: u32 = 3;
++pub const IPV6_2292DSTOPTS: u32 = 4;
++pub const IPV6_2292RTHDR: u32 = 5;
++pub const IPV6_2292PKTOPTIONS: u32 = 6;
++pub const IPV6_CHECKSUM: u32 = 7;
++pub const IPV6_2292HOPLIMIT: u32 = 8;
++pub const IPV6_NEXTHOP: u32 = 9;
++pub const IPV6_AUTHHDR: u32 = 10;
++pub const IPV6_FLOWINFO: u32 = 11;
++pub const IPV6_UNICAST_HOPS: u32 = 16;
++pub const IPV6_MULTICAST_IF: u32 = 17;
++pub const IPV6_MULTICAST_HOPS: u32 = 18;
++pub const IPV6_MULTICAST_LOOP: u32 = 19;
++pub const IPV6_ADD_MEMBERSHIP: u32 = 20;
++pub const IPV6_DROP_MEMBERSHIP: u32 = 21;
++pub const IPV6_ROUTER_ALERT: u32 = 22;
++pub const IPV6_MTU_DISCOVER: u32 = 23;
++pub const IPV6_MTU: u32 = 24;
++pub const IPV6_RECVERR: u32 = 25;
++pub const IPV6_V6ONLY: u32 = 26;
++pub const IPV6_JOIN_ANYCAST: u32 = 27;
++pub const IPV6_LEAVE_ANYCAST: u32 = 28;
++pub const IPV6_MULTICAST_ALL: u32 = 29;
++pub const IPV6_ROUTER_ALERT_ISOLATE: u32 = 30;
++pub const IPV6_RECVERR_RFC4884: u32 = 31;
++pub const IPV6_PMTUDISC_DONT: u32 = 0;
++pub const IPV6_PMTUDISC_WANT: u32 = 1;
++pub const IPV6_PMTUDISC_DO: u32 = 2;
++pub const IPV6_PMTUDISC_PROBE: u32 = 3;
++pub const IPV6_PMTUDISC_INTERFACE: u32 = 4;
++pub const IPV6_PMTUDISC_OMIT: u32 = 5;
++pub const IPV6_FLOWLABEL_MGR: u32 = 32;
++pub const IPV6_FLOWINFO_SEND: u32 = 33;
++pub const IPV6_IPSEC_POLICY: u32 = 34;
++pub const IPV6_XFRM_POLICY: u32 = 35;
++pub const IPV6_HDRINCL: u32 = 36;
++pub const IPV6_RECVPKTINFO: u32 = 49;
++pub const IPV6_PKTINFO: u32 = 50;
++pub const IPV6_RECVHOPLIMIT: u32 = 51;
++pub const IPV6_HOPLIMIT: u32 = 52;
++pub const IPV6_RECVHOPOPTS: u32 = 53;
++pub const IPV6_HOPOPTS: u32 = 54;
++pub const IPV6_RTHDRDSTOPTS: u32 = 55;
++pub const IPV6_RECVRTHDR: u32 = 56;
++pub const IPV6_RTHDR: u32 = 57;
++pub const IPV6_RECVDSTOPTS: u32 = 58;
++pub const IPV6_DSTOPTS: u32 = 59;
++pub const IPV6_RECVPATHMTU: u32 = 60;
++pub const IPV6_PATHMTU: u32 = 61;
++pub const IPV6_DONTFRAG: u32 = 62;
++pub const IPV6_RECVTCLASS: u32 = 66;
++pub const IPV6_TCLASS: u32 = 67;
++pub const IPV6_AUTOFLOWLABEL: u32 = 70;
++pub const IPV6_ADDR_PREFERENCES: u32 = 72;
++pub const IPV6_PREFER_SRC_TMP: u32 = 1;
++pub const IPV6_PREFER_SRC_PUBLIC: u32 = 2;
++pub const IPV6_PREFER_SRC_PUBTMP_DEFAULT: u32 = 256;
++pub const IPV6_PREFER_SRC_COA: u32 = 4;
++pub const IPV6_PREFER_SRC_HOME: u32 = 1024;
++pub const IPV6_PREFER_SRC_CGA: u32 = 8;
++pub const IPV6_PREFER_SRC_NONCGA: u32 = 2048;
++pub const IPV6_MINHOPCOUNT: u32 = 73;
++pub const IPV6_ORIGDSTADDR: u32 = 74;
++pub const IPV6_RECVORIGDSTADDR: u32 = 74;
++pub const IPV6_TRANSPARENT: u32 = 75;
++pub const IPV6_UNICAST_IF: u32 = 76;
++pub const IPV6_RECVFRAGSIZE: u32 = 77;
++pub const IPV6_FREEBIND: u32 = 78;
++pub const IPV6_MIN_MTU: u32 = 1280;
++pub const IPV6_SRCRT_STRICT: u32 = 1;
++pub const IPV6_SRCRT_TYPE_0: u32 = 0;
++pub const IPV6_SRCRT_TYPE_2: u32 = 2;
++pub const IPV6_SRCRT_TYPE_3: u32 = 3;
++pub const IPV6_SRCRT_TYPE_4: u32 = 4;
++pub const IPV6_OPT_ROUTERALERT_MLD: u32 = 0;
++pub const _IOC_SIZEBITS: u32 = 13;
++pub const _IOC_DIRBITS: u32 = 3;
++pub const _IOC_NONE: u32 = 1;
++pub const _IOC_READ: u32 = 2;
++pub const _IOC_WRITE: u32 = 4;
++pub const _IOC_NRBITS: u32 = 8;
++pub const _IOC_TYPEBITS: u32 = 8;
++pub const _IOC_NRMASK: u32 = 255;
++pub const _IOC_TYPEMASK: u32 = 255;
++pub const _IOC_SIZEMASK: u32 = 8191;
++pub const _IOC_DIRMASK: u32 = 7;
++pub const _IOC_NRSHIFT: u32 = 0;
++pub const _IOC_TYPESHIFT: u32 = 8;
++pub const _IOC_SIZESHIFT: u32 = 16;
++pub const _IOC_DIRSHIFT: u32 = 29;
++pub const IOC_IN: u32 = 2147483648;
++pub const IOC_OUT: u32 = 1073741824;
++pub const IOC_INOUT: u32 = 3221225472;
++pub const IOCSIZE_MASK: u32 = 536805376;
++pub const IOCSIZE_SHIFT: u32 = 16;
++pub const SIOCGSTAMP_OLD: u32 = 35078;
++pub const SIOCGSTAMPNS_OLD: u32 = 35079;
++pub const SOL_SOCKET: u32 = 65535;
++pub const SO_DEBUG: u32 = 1;
++pub const SO_REUSEADDR: u32 = 4;
++pub const SO_KEEPALIVE: u32 = 8;
++pub const SO_DONTROUTE: u32 = 16;
++pub const SO_BROADCAST: u32 = 32;
++pub const SO_LINGER: u32 = 128;
++pub const SO_OOBINLINE: u32 = 256;
++pub const SO_REUSEPORT: u32 = 512;
++pub const SO_TYPE: u32 = 4104;
++pub const SO_STYLE: u32 = 4104;
++pub const SO_ERROR: u32 = 4103;
++pub const SO_SNDBUF: u32 = 4097;
++pub const SO_RCVBUF: u32 = 4098;
++pub const SO_SNDLOWAT: u32 = 4099;
++pub const SO_RCVLOWAT: u32 = 4100;
++pub const SO_SNDTIMEO_OLD: u32 = 4101;
++pub const SO_RCVTIMEO_OLD: u32 = 4102;
++pub const SO_ACCEPTCONN: u32 = 4105;
++pub const SO_PROTOCOL: u32 = 4136;
++pub const SO_DOMAIN: u32 = 4137;
++pub const SO_NO_CHECK: u32 = 11;
++pub const SO_PRIORITY: u32 = 12;
++pub const SO_BSDCOMPAT: u32 = 14;
++pub const SO_PASSCRED: u32 = 17;
++pub const SO_PEERCRED: u32 = 18;
++pub const SO_SECURITY_AUTHENTICATION: u32 = 22;
++pub const SO_SECURITY_ENCRYPTION_TRANSPORT: u32 = 23;
++pub const SO_SECURITY_ENCRYPTION_NETWORK: u32 = 24;
++pub const SO_BINDTODEVICE: u32 = 25;
++pub const SO_ATTACH_FILTER: u32 = 26;
++pub const SO_DETACH_FILTER: u32 = 27;
++pub const SO_GET_FILTER: u32 = 26;
++pub const SO_PEERNAME: u32 = 28;
++pub const SO_PEERSEC: u32 = 30;
++pub const SO_SNDBUFFORCE: u32 = 31;
++pub const SO_RCVBUFFORCE: u32 = 33;
++pub const SO_PASSSEC: u32 = 34;
++pub const SO_MARK: u32 = 36;
++pub const SO_RXQ_OVFL: u32 = 40;
++pub const SO_WIFI_STATUS: u32 = 41;
++pub const SCM_WIFI_STATUS: u32 = 41;
++pub const SO_PEEK_OFF: u32 = 42;
++pub const SO_NOFCS: u32 = 43;
++pub const SO_LOCK_FILTER: u32 = 44;
++pub const SO_SELECT_ERR_QUEUE: u32 = 45;
++pub const SO_BUSY_POLL: u32 = 46;
++pub const SO_MAX_PACING_RATE: u32 = 47;
++pub const SO_BPF_EXTENSIONS: u32 = 48;
++pub const SO_INCOMING_CPU: u32 = 49;
++pub const SO_ATTACH_BPF: u32 = 50;
++pub const SO_DETACH_BPF: u32 = 27;
++pub const SO_ATTACH_REUSEPORT_CBPF: u32 = 51;
++pub const SO_ATTACH_REUSEPORT_EBPF: u32 = 52;
++pub const SO_CNX_ADVICE: u32 = 53;
++pub const SCM_TIMESTAMPING_OPT_STATS: u32 = 54;
++pub const SO_MEMINFO: u32 = 55;
++pub const SO_INCOMING_NAPI_ID: u32 = 56;
++pub const SO_COOKIE: u32 = 57;
++pub const SCM_TIMESTAMPING_PKTINFO: u32 = 58;
++pub const SO_PEERGROUPS: u32 = 59;
++pub const SO_ZEROCOPY: u32 = 60;
++pub const SO_TXTIME: u32 = 61;
++pub const SCM_TXTIME: u32 = 61;
++pub const SO_BINDTOIFINDEX: u32 = 62;
++pub const SO_TIMESTAMP_OLD: u32 = 29;
++pub const SO_TIMESTAMPNS_OLD: u32 = 35;
++pub const SO_TIMESTAMPING_OLD: u32 = 37;
++pub const SO_TIMESTAMP_NEW: u32 = 63;
++pub const SO_TIMESTAMPNS_NEW: u32 = 64;
++pub const SO_TIMESTAMPING_NEW: u32 = 65;
++pub const SO_RCVTIMEO_NEW: u32 = 66;
++pub const SO_SNDTIMEO_NEW: u32 = 67;
++pub const SO_DETACH_REUSEPORT_BPF: u32 = 68;
++pub const SO_PREFER_BUSY_POLL: u32 = 69;
++pub const SO_BUSY_POLL_BUDGET: u32 = 70;
++pub const SO_NETNS_COOKIE: u32 = 71;
++pub const SO_BUF_LOCK: u32 = 72;
++pub const SO_RESERVE_MEM: u32 = 73;
++pub const SO_TXREHASH: u32 = 74;
++pub const SO_RCVMARK: u32 = 75;
++pub const SO_TIMESTAMP: u32 = 29;
++pub const SO_TIMESTAMPNS: u32 = 35;
++pub const SO_TIMESTAMPING: u32 = 37;
++pub const SO_RCVTIMEO: u32 = 4102;
++pub const SO_SNDTIMEO: u32 = 4101;
++pub const SCM_TIMESTAMP: u32 = 29;
++pub const SCM_TIMESTAMPNS: u32 = 35;
++pub const SCM_TIMESTAMPING: u32 = 37;
++pub const SYS_SOCKET: u32 = 1;
++pub const SYS_BIND: u32 = 2;
++pub const SYS_CONNECT: u32 = 3;
++pub const SYS_LISTEN: u32 = 4;
++pub const SYS_ACCEPT: u32 = 5;
++pub const SYS_GETSOCKNAME: u32 = 6;
++pub const SYS_GETPEERNAME: u32 = 7;
++pub const SYS_SOCKETPAIR: u32 = 8;
++pub const SYS_SEND: u32 = 9;
++pub const SYS_RECV: u32 = 10;
++pub const SYS_SENDTO: u32 = 11;
++pub const SYS_RECVFROM: u32 = 12;
++pub const SYS_SHUTDOWN: u32 = 13;
++pub const SYS_SETSOCKOPT: u32 = 14;
++pub const SYS_GETSOCKOPT: u32 = 15;
++pub const SYS_SENDMSG: u32 = 16;
++pub const SYS_RECVMSG: u32 = 17;
++pub const SYS_ACCEPT4: u32 = 18;
++pub const SYS_RECVMMSG: u32 = 19;
++pub const SYS_SENDMMSG: u32 = 20;
++pub const __SO_ACCEPTCON: u32 = 65536;
++pub const TCP_MSS_DEFAULT: u32 = 536;
++pub const TCP_MSS_DESIRED: u32 = 1220;
++pub const TCP_NODELAY: u32 = 1;
++pub const TCP_MAXSEG: u32 = 2;
++pub const TCP_CORK: u32 = 3;
++pub const TCP_KEEPIDLE: u32 = 4;
++pub const TCP_KEEPINTVL: u32 = 5;
++pub const TCP_KEEPCNT: u32 = 6;
++pub const TCP_SYNCNT: u32 = 7;
++pub const TCP_LINGER2: u32 = 8;
++pub const TCP_DEFER_ACCEPT: u32 = 9;
++pub const TCP_WINDOW_CLAMP: u32 = 10;
++pub const TCP_INFO: u32 = 11;
++pub const TCP_QUICKACK: u32 = 12;
++pub const TCP_CONGESTION: u32 = 13;
++pub const TCP_MD5SIG: u32 = 14;
++pub const TCP_THIN_LINEAR_TIMEOUTS: u32 = 16;
++pub const TCP_THIN_DUPACK: u32 = 17;
++pub const TCP_USER_TIMEOUT: u32 = 18;
++pub const TCP_REPAIR: u32 = 19;
++pub const TCP_REPAIR_QUEUE: u32 = 20;
++pub const TCP_QUEUE_SEQ: u32 = 21;
++pub const TCP_REPAIR_OPTIONS: u32 = 22;
++pub const TCP_FASTOPEN: u32 = 23;
++pub const TCP_TIMESTAMP: u32 = 24;
++pub const TCP_NOTSENT_LOWAT: u32 = 25;
++pub const TCP_CC_INFO: u32 = 26;
++pub const TCP_SAVE_SYN: u32 = 27;
++pub const TCP_SAVED_SYN: u32 = 28;
++pub const TCP_REPAIR_WINDOW: u32 = 29;
++pub const TCP_FASTOPEN_CONNECT: u32 = 30;
++pub const TCP_ULP: u32 = 31;
++pub const TCP_MD5SIG_EXT: u32 = 32;
++pub const TCP_FASTOPEN_KEY: u32 = 33;
++pub const TCP_FASTOPEN_NO_COOKIE: u32 = 34;
++pub const TCP_ZEROCOPY_RECEIVE: u32 = 35;
++pub const TCP_INQ: u32 = 36;
++pub const TCP_CM_INQ: u32 = 36;
++pub const TCP_TX_DELAY: u32 = 37;
++pub const TCP_REPAIR_ON: u32 = 1;
++pub const TCP_REPAIR_OFF: u32 = 0;
++pub const TCP_REPAIR_OFF_NO_WP: i32 = -1;
++pub const TCPI_OPT_TIMESTAMPS: u32 = 1;
++pub const TCPI_OPT_SACK: u32 = 2;
++pub const TCPI_OPT_WSCALE: u32 = 4;
++pub const TCPI_OPT_ECN: u32 = 8;
++pub const TCPI_OPT_ECN_SEEN: u32 = 16;
++pub const TCPI_OPT_SYN_DATA: u32 = 32;
++pub const TCP_MD5SIG_MAXKEYLEN: u32 = 80;
++pub const TCP_MD5SIG_FLAG_PREFIX: u32 = 1;
++pub const TCP_MD5SIG_FLAG_IFINDEX: u32 = 2;
++pub const TCP_RECEIVE_ZEROCOPY_FLAG_TLB_CLEAN_HINT: u32 = 1;
++pub const UNIX_PATH_MAX: u32 = 108;
++pub const IFNAMSIZ: u32 = 16;
++pub const IFALIASZ: u32 = 256;
++pub const ALTIFNAMSIZ: u32 = 128;
++pub const GENERIC_HDLC_VERSION: u32 = 4;
++pub const CLOCK_DEFAULT: u32 = 0;
++pub const CLOCK_EXT: u32 = 1;
++pub const CLOCK_INT: u32 = 2;
++pub const CLOCK_TXINT: u32 = 3;
++pub const CLOCK_TXFROMRX: u32 = 4;
++pub const ENCODING_DEFAULT: u32 = 0;
++pub const ENCODING_NRZ: u32 = 1;
++pub const ENCODING_NRZI: u32 = 2;
++pub const ENCODING_FM_MARK: u32 = 3;
++pub const ENCODING_FM_SPACE: u32 = 4;
++pub const ENCODING_MANCHESTER: u32 = 5;
++pub const PARITY_DEFAULT: u32 = 0;
++pub const PARITY_NONE: u32 = 1;
++pub const PARITY_CRC16_PR0: u32 = 2;
++pub const PARITY_CRC16_PR1: u32 = 3;
++pub const PARITY_CRC16_PR0_CCITT: u32 = 4;
++pub const PARITY_CRC16_PR1_CCITT: u32 = 5;
++pub const PARITY_CRC32_PR0_CCITT: u32 = 6;
++pub const PARITY_CRC32_PR1_CCITT: u32 = 7;
++pub const LMI_DEFAULT: u32 = 0;
++pub const LMI_NONE: u32 = 1;
++pub const LMI_ANSI: u32 = 2;
++pub const LMI_CCITT: u32 = 3;
++pub const LMI_CISCO: u32 = 4;
++pub const IF_GET_IFACE: u32 = 1;
++pub const IF_GET_PROTO: u32 = 2;
++pub const IF_IFACE_V35: u32 = 4096;
++pub const IF_IFACE_V24: u32 = 4097;
++pub const IF_IFACE_X21: u32 = 4098;
++pub const IF_IFACE_T1: u32 = 4099;
++pub const IF_IFACE_E1: u32 = 4100;
++pub const IF_IFACE_SYNC_SERIAL: u32 = 4101;
++pub const IF_IFACE_X21D: u32 = 4102;
++pub const IF_PROTO_HDLC: u32 = 8192;
++pub const IF_PROTO_PPP: u32 = 8193;
++pub const IF_PROTO_CISCO: u32 = 8194;
++pub const IF_PROTO_FR: u32 = 8195;
++pub const IF_PROTO_FR_ADD_PVC: u32 = 8196;
++pub const IF_PROTO_FR_DEL_PVC: u32 = 8197;
++pub const IF_PROTO_X25: u32 = 8198;
++pub const IF_PROTO_HDLC_ETH: u32 = 8199;
++pub const IF_PROTO_FR_ADD_ETH_PVC: u32 = 8200;
++pub const IF_PROTO_FR_DEL_ETH_PVC: u32 = 8201;
++pub const IF_PROTO_FR_PVC: u32 = 8202;
++pub const IF_PROTO_FR_ETH_PVC: u32 = 8203;
++pub const IF_PROTO_RAW: u32 = 8204;
++pub const IFHWADDRLEN: u32 = 6;
++pub const NF_DROP: u32 = 0;
++pub const NF_ACCEPT: u32 = 1;
++pub const NF_STOLEN: u32 = 2;
++pub const NF_QUEUE: u32 = 3;
++pub const NF_REPEAT: u32 = 4;
++pub const NF_STOP: u32 = 5;
++pub const NF_MAX_VERDICT: u32 = 5;
++pub const NF_VERDICT_MASK: u32 = 255;
++pub const NF_VERDICT_FLAG_QUEUE_BYPASS: u32 = 32768;
++pub const NF_VERDICT_QMASK: u32 = 4294901760;
++pub const NF_VERDICT_QBITS: u32 = 16;
++pub const NF_VERDICT_BITS: u32 = 16;
++pub const NF_IP6_PRE_ROUTING: u32 = 0;
++pub const NF_IP6_LOCAL_IN: u32 = 1;
++pub const NF_IP6_FORWARD: u32 = 2;
++pub const NF_IP6_LOCAL_OUT: u32 = 3;
++pub const NF_IP6_POST_ROUTING: u32 = 4;
++pub const NF_IP6_NUMHOOKS: u32 = 5;
++pub const XT_FUNCTION_MAXNAMELEN: u32 = 30;
++pub const XT_EXTENSION_MAXNAMELEN: u32 = 29;
++pub const XT_TABLE_MAXNAMELEN: u32 = 32;
++pub const XT_CONTINUE: u32 = 4294967295;
++pub const XT_RETURN: i32 = -5;
++pub const XT_STANDARD_TARGET: &[u8; 1] = b"\0";
++pub const XT_ERROR_TARGET: &[u8; 6] = b"ERROR\0";
++pub const XT_INV_PROTO: u32 = 64;
++pub const IP6T_FUNCTION_MAXNAMELEN: u32 = 30;
++pub const IP6T_TABLE_MAXNAMELEN: u32 = 32;
++pub const IP6T_CONTINUE: u32 = 4294967295;
++pub const IP6T_RETURN: i32 = -5;
++pub const XT_TCP_INV_SRCPT: u32 = 1;
++pub const XT_TCP_INV_DSTPT: u32 = 2;
++pub const XT_TCP_INV_FLAGS: u32 = 4;
++pub const XT_TCP_INV_OPTION: u32 = 8;
++pub const XT_TCP_INV_MASK: u32 = 15;
++pub const XT_UDP_INV_SRCPT: u32 = 1;
++pub const XT_UDP_INV_DSTPT: u32 = 2;
++pub const XT_UDP_INV_MASK: u32 = 3;
++pub const IP6T_TCP_INV_SRCPT: u32 = 1;
++pub const IP6T_TCP_INV_DSTPT: u32 = 2;
++pub const IP6T_TCP_INV_FLAGS: u32 = 4;
++pub const IP6T_TCP_INV_OPTION: u32 = 8;
++pub const IP6T_TCP_INV_MASK: u32 = 15;
++pub const IP6T_UDP_INV_SRCPT: u32 = 1;
++pub const IP6T_UDP_INV_DSTPT: u32 = 2;
++pub const IP6T_UDP_INV_MASK: u32 = 3;
++pub const IP6T_STANDARD_TARGET: &[u8; 1] = b"\0";
++pub const IP6T_ERROR_TARGET: &[u8; 6] = b"ERROR\0";
++pub const IP6T_F_PROTO: u32 = 1;
++pub const IP6T_F_TOS: u32 = 2;
++pub const IP6T_F_GOTO: u32 = 4;
++pub const IP6T_F_MASK: u32 = 7;
++pub const IP6T_INV_VIA_IN: u32 = 1;
++pub const IP6T_INV_VIA_OUT: u32 = 2;
++pub const IP6T_INV_TOS: u32 = 4;
++pub const IP6T_INV_SRCIP: u32 = 8;
++pub const IP6T_INV_DSTIP: u32 = 16;
++pub const IP6T_INV_FRAG: u32 = 32;
++pub const IP6T_INV_PROTO: u32 = 64;
++pub const IP6T_INV_MASK: u32 = 127;
++pub const IP6T_BASE_CTL: u32 = 64;
++pub const IP6T_SO_SET_REPLACE: u32 = 64;
++pub const IP6T_SO_SET_ADD_COUNTERS: u32 = 65;
++pub const IP6T_SO_SET_MAX: u32 = 65;
++pub const IP6T_SO_GET_INFO: u32 = 64;
++pub const IP6T_SO_GET_ENTRIES: u32 = 65;
++pub const IP6T_SO_GET_REVISION_MATCH: u32 = 68;
++pub const IP6T_SO_GET_REVISION_TARGET: u32 = 69;
++pub const IP6T_SO_GET_MAX: u32 = 69;
++pub const IP6T_SO_ORIGINAL_DST: u32 = 80;
++pub const IP6T_ICMP_INV: u32 = 1;
++pub const NF_IP_PRE_ROUTING: u32 = 0;
++pub const NF_IP_LOCAL_IN: u32 = 1;
++pub const NF_IP_FORWARD: u32 = 2;
++pub const NF_IP_LOCAL_OUT: u32 = 3;
++pub const NF_IP_POST_ROUTING: u32 = 4;
++pub const NF_IP_NUMHOOKS: u32 = 5;
++pub const SO_ORIGINAL_DST: u32 = 80;
++pub const SHUT_RD: u32 = 0;
++pub const SHUT_WR: u32 = 1;
++pub const SHUT_RDWR: u32 = 2;
++pub const SOCK_STREAM: u32 = 2;
++pub const SOCK_DGRAM: u32 = 1;
++pub const SOCK_RAW: u32 = 3;
++pub const SOCK_RDM: u32 = 4;
++pub const SOCK_SEQPACKET: u32 = 5;
++pub const MSG_DONTWAIT: u32 = 64;
++pub const AF_UNSPEC: u32 = 0;
++pub const AF_UNIX: u32 = 1;
++pub const AF_INET: u32 = 2;
++pub const AF_AX25: u32 = 3;
++pub const AF_IPX: u32 = 4;
++pub const AF_APPLETALK: u32 = 5;
++pub const AF_NETROM: u32 = 6;
++pub const AF_BRIDGE: u32 = 7;
++pub const AF_ATMPVC: u32 = 8;
++pub const AF_X25: u32 = 9;
++pub const AF_INET6: u32 = 10;
++pub const AF_ROSE: u32 = 11;
++pub const AF_DECnet: u32 = 12;
++pub const AF_NETBEUI: u32 = 13;
++pub const AF_SECURITY: u32 = 14;
++pub const AF_KEY: u32 = 15;
++pub const AF_NETLINK: u32 = 16;
++pub const AF_PACKET: u32 = 17;
++pub const AF_ASH: u32 = 18;
++pub const AF_ECONET: u32 = 19;
++pub const AF_ATMSVC: u32 = 20;
++pub const AF_RDS: u32 = 21;
++pub const AF_SNA: u32 = 22;
++pub const AF_IRDA: u32 = 23;
++pub const AF_PPPOX: u32 = 24;
++pub const AF_WANPIPE: u32 = 25;
++pub const AF_LLC: u32 = 26;
++pub const AF_CAN: u32 = 29;
++pub const AF_TIPC: u32 = 30;
++pub const AF_BLUETOOTH: u32 = 31;
++pub const AF_IUCV: u32 = 32;
++pub const AF_RXRPC: u32 = 33;
++pub const AF_ISDN: u32 = 34;
++pub const AF_PHONET: u32 = 35;
++pub const AF_IEEE802154: u32 = 36;
++pub const AF_CAIF: u32 = 37;
++pub const AF_ALG: u32 = 38;
++pub const AF_NFC: u32 = 39;
++pub const AF_VSOCK: u32 = 40;
++pub const AF_KCM: u32 = 41;
++pub const AF_QIPCRTR: u32 = 42;
++pub const AF_SMC: u32 = 43;
++pub const AF_XDP: u32 = 44;
++pub const AF_MCTP: u32 = 45;
++pub const AF_MAX: u32 = 46;
++pub const MSG_OOB: u32 = 1;
++pub const MSG_PEEK: u32 = 2;
++pub const MSG_DONTROUTE: u32 = 4;
++pub const MSG_CTRUNC: u32 = 8;
++pub const MSG_PROBE: u32 = 16;
++pub const MSG_TRUNC: u32 = 32;
++pub const MSG_EOR: u32 = 128;
++pub const MSG_WAITALL: u32 = 256;
++pub const MSG_FIN: u32 = 512;
++pub const MSG_SYN: u32 = 1024;
++pub const MSG_CONFIRM: u32 = 2048;
++pub const MSG_RST: u32 = 4096;
++pub const MSG_ERRQUEUE: u32 = 8192;
++pub const MSG_NOSIGNAL: u32 = 16384;
++pub const MSG_MORE: u32 = 32768;
++pub const MSG_CMSG_CLOEXEC: u32 = 1073741824;
++pub const SCM_RIGHTS: u32 = 1;
++pub const SCM_CREDENTIALS: u32 = 2;
++pub const SCM_SECURITY: u32 = 3;
++pub const SOL_IP: u32 = 0;
++pub const SOL_TCP: u32 = 6;
++pub const SOL_UDP: u32 = 17;
++pub const SOL_IPV6: u32 = 41;
++pub const SOL_ICMPV6: u32 = 58;
++pub const SOL_SCTP: u32 = 132;
++pub const SOL_UDPLITE: u32 = 136;
++pub const SOL_RAW: u32 = 255;
++pub const SOL_IPX: u32 = 256;
++pub const SOL_AX25: u32 = 257;
++pub const SOL_ATALK: u32 = 258;
++pub const SOL_NETROM: u32 = 259;
++pub const SOL_ROSE: u32 = 260;
++pub const SOL_DECNET: u32 = 261;
++pub const SOL_X25: u32 = 262;
++pub const SOL_PACKET: u32 = 263;
++pub const SOL_ATM: u32 = 264;
++pub const SOL_AAL: u32 = 265;
++pub const SOL_IRDA: u32 = 266;
++pub const SOL_NETBEUI: u32 = 267;
++pub const SOL_LLC: u32 = 268;
++pub const SOL_DCCP: u32 = 269;
++pub const SOL_NETLINK: u32 = 270;
++pub const SOL_TIPC: u32 = 271;
++pub const SOL_RXRPC: u32 = 272;
++pub const SOL_PPPOL2TP: u32 = 273;
++pub const SOL_BLUETOOTH: u32 = 274;
++pub const SOL_PNPIPE: u32 = 275;
++pub const SOL_RDS: u32 = 276;
++pub const SOL_IUCV: u32 = 277;
++pub const SOL_CAIF: u32 = 278;
++pub const SOL_ALG: u32 = 279;
++pub const SOL_NFC: u32 = 280;
++pub const SOL_KCM: u32 = 281;
++pub const SOL_TLS: u32 = 282;
++pub const SOL_XDP: u32 = 283;
++pub const SOL_MPTCP: u32 = 284;
++pub const SOL_MCTP: u32 = 285;
++pub const SOL_SMC: u32 = 286;
++pub const IPPROTO_IP: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_IP;
++pub const IPPROTO_ICMP: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_ICMP;
++pub const IPPROTO_IGMP: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_IGMP;
++pub const IPPROTO_IPIP: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_IPIP;
++pub const IPPROTO_TCP: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_TCP;
++pub const IPPROTO_EGP: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_EGP;
++pub const IPPROTO_PUP: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_PUP;
++pub const IPPROTO_UDP: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_UDP;
++pub const IPPROTO_IDP: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_IDP;
++pub const IPPROTO_TP: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_TP;
++pub const IPPROTO_DCCP: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_DCCP;
++pub const IPPROTO_IPV6: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_IPV6;
++pub const IPPROTO_RSVP: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_RSVP;
++pub const IPPROTO_GRE: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_GRE;
++pub const IPPROTO_ESP: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_ESP;
++pub const IPPROTO_AH: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_AH;
++pub const IPPROTO_MTP: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_MTP;
++pub const IPPROTO_BEETPH: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_BEETPH;
++pub const IPPROTO_ENCAP: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_ENCAP;
++pub const IPPROTO_PIM: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_PIM;
++pub const IPPROTO_COMP: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_COMP;
++pub const IPPROTO_L2TP: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_L2TP;
++pub const IPPROTO_SCTP: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_SCTP;
++pub const IPPROTO_UDPLITE: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_UDPLITE;
++pub const IPPROTO_MPLS: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_MPLS;
++pub const IPPROTO_ETHERNET: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_ETHERNET;
++pub const IPPROTO_RAW: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_RAW;
++pub const IPPROTO_MPTCP: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_MPTCP;
++pub const IPPROTO_MAX: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_MAX;
++pub const IPV4_DEVCONF_FORWARDING: _bindgen_ty_2 = _bindgen_ty_2::IPV4_DEVCONF_FORWARDING;
++pub const IPV4_DEVCONF_MC_FORWARDING: _bindgen_ty_2 = _bindgen_ty_2::IPV4_DEVCONF_MC_FORWARDING;
++pub const IPV4_DEVCONF_PROXY_ARP: _bindgen_ty_2 = _bindgen_ty_2::IPV4_DEVCONF_PROXY_ARP;
++pub const IPV4_DEVCONF_ACCEPT_REDIRECTS: _bindgen_ty_2 = _bindgen_ty_2::IPV4_DEVCONF_ACCEPT_REDIRECTS;
++pub const IPV4_DEVCONF_SECURE_REDIRECTS: _bindgen_ty_2 = _bindgen_ty_2::IPV4_DEVCONF_SECURE_REDIRECTS;
++pub const IPV4_DEVCONF_SEND_REDIRECTS: _bindgen_ty_2 = _bindgen_ty_2::IPV4_DEVCONF_SEND_REDIRECTS;
++pub const IPV4_DEVCONF_SHARED_MEDIA: _bindgen_ty_2 = _bindgen_ty_2::IPV4_DEVCONF_SHARED_MEDIA;
++pub const IPV4_DEVCONF_RP_FILTER: _bindgen_ty_2 = _bindgen_ty_2::IPV4_DEVCONF_RP_FILTER;
++pub const IPV4_DEVCONF_ACCEPT_SOURCE_ROUTE: _bindgen_ty_2 = _bindgen_ty_2::IPV4_DEVCONF_ACCEPT_SOURCE_ROUTE;
++pub const IPV4_DEVCONF_BOOTP_RELAY: _bindgen_ty_2 = _bindgen_ty_2::IPV4_DEVCONF_BOOTP_RELAY;
++pub const IPV4_DEVCONF_LOG_MARTIANS: _bindgen_ty_2 = _bindgen_ty_2::IPV4_DEVCONF_LOG_MARTIANS;
++pub const IPV4_DEVCONF_TAG: _bindgen_ty_2 = _bindgen_ty_2::IPV4_DEVCONF_TAG;
++pub const IPV4_DEVCONF_ARPFILTER: _bindgen_ty_2 = _bindgen_ty_2::IPV4_DEVCONF_ARPFILTER;
++pub const IPV4_DEVCONF_MEDIUM_ID: _bindgen_ty_2 = _bindgen_ty_2::IPV4_DEVCONF_MEDIUM_ID;
++pub const IPV4_DEVCONF_NOXFRM: _bindgen_ty_2 = _bindgen_ty_2::IPV4_DEVCONF_NOXFRM;
++pub const IPV4_DEVCONF_NOPOLICY: _bindgen_ty_2 = _bindgen_ty_2::IPV4_DEVCONF_NOPOLICY;
++pub const IPV4_DEVCONF_FORCE_IGMP_VERSION: _bindgen_ty_2 = _bindgen_ty_2::IPV4_DEVCONF_FORCE_IGMP_VERSION;
++pub const IPV4_DEVCONF_ARP_ANNOUNCE: _bindgen_ty_2 = _bindgen_ty_2::IPV4_DEVCONF_ARP_ANNOUNCE;
++pub const IPV4_DEVCONF_ARP_IGNORE: _bindgen_ty_2 = _bindgen_ty_2::IPV4_DEVCONF_ARP_IGNORE;
++pub const IPV4_DEVCONF_PROMOTE_SECONDARIES: _bindgen_ty_2 = _bindgen_ty_2::IPV4_DEVCONF_PROMOTE_SECONDARIES;
++pub const IPV4_DEVCONF_ARP_ACCEPT: _bindgen_ty_2 = _bindgen_ty_2::IPV4_DEVCONF_ARP_ACCEPT;
++pub const IPV4_DEVCONF_ARP_NOTIFY: _bindgen_ty_2 = _bindgen_ty_2::IPV4_DEVCONF_ARP_NOTIFY;
++pub const IPV4_DEVCONF_ACCEPT_LOCAL: _bindgen_ty_2 = _bindgen_ty_2::IPV4_DEVCONF_ACCEPT_LOCAL;
++pub const IPV4_DEVCONF_SRC_VMARK: _bindgen_ty_2 = _bindgen_ty_2::IPV4_DEVCONF_SRC_VMARK;
++pub const IPV4_DEVCONF_PROXY_ARP_PVLAN: _bindgen_ty_2 = _bindgen_ty_2::IPV4_DEVCONF_PROXY_ARP_PVLAN;
++pub const IPV4_DEVCONF_ROUTE_LOCALNET: _bindgen_ty_2 = _bindgen_ty_2::IPV4_DEVCONF_ROUTE_LOCALNET;
++pub const IPV4_DEVCONF_IGMPV2_UNSOLICITED_REPORT_INTERVAL: _bindgen_ty_2 = _bindgen_ty_2::IPV4_DEVCONF_IGMPV2_UNSOLICITED_REPORT_INTERVAL;
++pub const IPV4_DEVCONF_IGMPV3_UNSOLICITED_REPORT_INTERVAL: _bindgen_ty_2 = _bindgen_ty_2::IPV4_DEVCONF_IGMPV3_UNSOLICITED_REPORT_INTERVAL;
++pub const IPV4_DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN: _bindgen_ty_2 = _bindgen_ty_2::IPV4_DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN;
++pub const IPV4_DEVCONF_DROP_UNICAST_IN_L2_MULTICAST: _bindgen_ty_2 = _bindgen_ty_2::IPV4_DEVCONF_DROP_UNICAST_IN_L2_MULTICAST;
++pub const IPV4_DEVCONF_DROP_GRATUITOUS_ARP: _bindgen_ty_2 = _bindgen_ty_2::IPV4_DEVCONF_DROP_GRATUITOUS_ARP;
++pub const IPV4_DEVCONF_BC_FORWARDING: _bindgen_ty_2 = _bindgen_ty_2::IPV4_DEVCONF_BC_FORWARDING;
++pub const IPV4_DEVCONF_ARP_EVICT_NOCARRIER: _bindgen_ty_2 = _bindgen_ty_2::IPV4_DEVCONF_ARP_EVICT_NOCARRIER;
++pub const __IPV4_DEVCONF_MAX: _bindgen_ty_2 = _bindgen_ty_2::__IPV4_DEVCONF_MAX;
++pub const DEVCONF_FORWARDING: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_FORWARDING;
++pub const DEVCONF_HOPLIMIT: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_HOPLIMIT;
++pub const DEVCONF_MTU6: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_MTU6;
++pub const DEVCONF_ACCEPT_RA: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_ACCEPT_RA;
++pub const DEVCONF_ACCEPT_REDIRECTS: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_ACCEPT_REDIRECTS;
++pub const DEVCONF_AUTOCONF: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_AUTOCONF;
++pub const DEVCONF_DAD_TRANSMITS: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_DAD_TRANSMITS;
++pub const DEVCONF_RTR_SOLICITS: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_RTR_SOLICITS;
++pub const DEVCONF_RTR_SOLICIT_INTERVAL: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_RTR_SOLICIT_INTERVAL;
++pub const DEVCONF_RTR_SOLICIT_DELAY: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_RTR_SOLICIT_DELAY;
++pub const DEVCONF_USE_TEMPADDR: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_USE_TEMPADDR;
++pub const DEVCONF_TEMP_VALID_LFT: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_TEMP_VALID_LFT;
++pub const DEVCONF_TEMP_PREFERED_LFT: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_TEMP_PREFERED_LFT;
++pub const DEVCONF_REGEN_MAX_RETRY: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_REGEN_MAX_RETRY;
++pub const DEVCONF_MAX_DESYNC_FACTOR: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_MAX_DESYNC_FACTOR;
++pub const DEVCONF_MAX_ADDRESSES: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_MAX_ADDRESSES;
++pub const DEVCONF_FORCE_MLD_VERSION: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_FORCE_MLD_VERSION;
++pub const DEVCONF_ACCEPT_RA_DEFRTR: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_ACCEPT_RA_DEFRTR;
++pub const DEVCONF_ACCEPT_RA_PINFO: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_ACCEPT_RA_PINFO;
++pub const DEVCONF_ACCEPT_RA_RTR_PREF: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_ACCEPT_RA_RTR_PREF;
++pub const DEVCONF_RTR_PROBE_INTERVAL: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_RTR_PROBE_INTERVAL;
++pub const DEVCONF_ACCEPT_RA_RT_INFO_MAX_PLEN: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_ACCEPT_RA_RT_INFO_MAX_PLEN;
++pub const DEVCONF_PROXY_NDP: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_PROXY_NDP;
++pub const DEVCONF_OPTIMISTIC_DAD: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_OPTIMISTIC_DAD;
++pub const DEVCONF_ACCEPT_SOURCE_ROUTE: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_ACCEPT_SOURCE_ROUTE;
++pub const DEVCONF_MC_FORWARDING: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_MC_FORWARDING;
++pub const DEVCONF_DISABLE_IPV6: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_DISABLE_IPV6;
++pub const DEVCONF_ACCEPT_DAD: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_ACCEPT_DAD;
++pub const DEVCONF_FORCE_TLLAO: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_FORCE_TLLAO;
++pub const DEVCONF_NDISC_NOTIFY: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_NDISC_NOTIFY;
++pub const DEVCONF_MLDV1_UNSOLICITED_REPORT_INTERVAL: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_MLDV1_UNSOLICITED_REPORT_INTERVAL;
++pub const DEVCONF_MLDV2_UNSOLICITED_REPORT_INTERVAL: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_MLDV2_UNSOLICITED_REPORT_INTERVAL;
++pub const DEVCONF_SUPPRESS_FRAG_NDISC: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_SUPPRESS_FRAG_NDISC;
++pub const DEVCONF_ACCEPT_RA_FROM_LOCAL: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_ACCEPT_RA_FROM_LOCAL;
++pub const DEVCONF_USE_OPTIMISTIC: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_USE_OPTIMISTIC;
++pub const DEVCONF_ACCEPT_RA_MTU: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_ACCEPT_RA_MTU;
++pub const DEVCONF_STABLE_SECRET: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_STABLE_SECRET;
++pub const DEVCONF_USE_OIF_ADDRS_ONLY: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_USE_OIF_ADDRS_ONLY;
++pub const DEVCONF_ACCEPT_RA_MIN_HOP_LIMIT: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_ACCEPT_RA_MIN_HOP_LIMIT;
++pub const DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN;
++pub const DEVCONF_DROP_UNICAST_IN_L2_MULTICAST: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_DROP_UNICAST_IN_L2_MULTICAST;
++pub const DEVCONF_DROP_UNSOLICITED_NA: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_DROP_UNSOLICITED_NA;
++pub const DEVCONF_KEEP_ADDR_ON_DOWN: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_KEEP_ADDR_ON_DOWN;
++pub const DEVCONF_RTR_SOLICIT_MAX_INTERVAL: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_RTR_SOLICIT_MAX_INTERVAL;
++pub const DEVCONF_SEG6_ENABLED: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_SEG6_ENABLED;
++pub const DEVCONF_SEG6_REQUIRE_HMAC: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_SEG6_REQUIRE_HMAC;
++pub const DEVCONF_ENHANCED_DAD: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_ENHANCED_DAD;
++pub const DEVCONF_ADDR_GEN_MODE: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_ADDR_GEN_MODE;
++pub const DEVCONF_DISABLE_POLICY: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_DISABLE_POLICY;
++pub const DEVCONF_ACCEPT_RA_RT_INFO_MIN_PLEN: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_ACCEPT_RA_RT_INFO_MIN_PLEN;
++pub const DEVCONF_NDISC_TCLASS: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_NDISC_TCLASS;
++pub const DEVCONF_RPL_SEG_ENABLED: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_RPL_SEG_ENABLED;
++pub const DEVCONF_RA_DEFRTR_METRIC: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_RA_DEFRTR_METRIC;
++pub const DEVCONF_IOAM6_ENABLED: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_IOAM6_ENABLED;
++pub const DEVCONF_IOAM6_ID: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_IOAM6_ID;
++pub const DEVCONF_IOAM6_ID_WIDE: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_IOAM6_ID_WIDE;
++pub const DEVCONF_NDISC_EVICT_NOCARRIER: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_NDISC_EVICT_NOCARRIER;
++pub const DEVCONF_ACCEPT_UNTRACKED_NA: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_ACCEPT_UNTRACKED_NA;
++pub const DEVCONF_MAX: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_MAX;
++pub const TCP_FLAG_CWR: _bindgen_ty_4 = _bindgen_ty_4::TCP_FLAG_CWR;
++pub const TCP_FLAG_ECE: _bindgen_ty_4 = _bindgen_ty_4::TCP_FLAG_ECE;
++pub const TCP_FLAG_URG: _bindgen_ty_4 = _bindgen_ty_4::TCP_FLAG_URG;
++pub const TCP_FLAG_ACK: _bindgen_ty_4 = _bindgen_ty_4::TCP_FLAG_ACK;
++pub const TCP_FLAG_PSH: _bindgen_ty_4 = _bindgen_ty_4::TCP_FLAG_PSH;
++pub const TCP_FLAG_RST: _bindgen_ty_4 = _bindgen_ty_4::TCP_FLAG_RST;
++pub const TCP_FLAG_SYN: _bindgen_ty_4 = _bindgen_ty_4::TCP_FLAG_SYN;
++pub const TCP_FLAG_FIN: _bindgen_ty_4 = _bindgen_ty_4::TCP_FLAG_FIN;
++pub const TCP_RESERVED_BITS: _bindgen_ty_4 = _bindgen_ty_4::TCP_RESERVED_BITS;
++pub const TCP_DATA_OFFSET: _bindgen_ty_4 = _bindgen_ty_4::TCP_DATA_OFFSET;
++pub const TCP_NO_QUEUE: _bindgen_ty_5 = _bindgen_ty_5::TCP_NO_QUEUE;
++pub const TCP_RECV_QUEUE: _bindgen_ty_5 = _bindgen_ty_5::TCP_RECV_QUEUE;
++pub const TCP_SEND_QUEUE: _bindgen_ty_5 = _bindgen_ty_5::TCP_SEND_QUEUE;
++pub const TCP_QUEUES_NR: _bindgen_ty_5 = _bindgen_ty_5::TCP_QUEUES_NR;
++pub const TCP_NLA_PAD: _bindgen_ty_6 = _bindgen_ty_6::TCP_NLA_PAD;
++pub const TCP_NLA_BUSY: _bindgen_ty_6 = _bindgen_ty_6::TCP_NLA_BUSY;
++pub const TCP_NLA_RWND_LIMITED: _bindgen_ty_6 = _bindgen_ty_6::TCP_NLA_RWND_LIMITED;
++pub const TCP_NLA_SNDBUF_LIMITED: _bindgen_ty_6 = _bindgen_ty_6::TCP_NLA_SNDBUF_LIMITED;
++pub const TCP_NLA_DATA_SEGS_OUT: _bindgen_ty_6 = _bindgen_ty_6::TCP_NLA_DATA_SEGS_OUT;
++pub const TCP_NLA_TOTAL_RETRANS: _bindgen_ty_6 = _bindgen_ty_6::TCP_NLA_TOTAL_RETRANS;
++pub const TCP_NLA_PACING_RATE: _bindgen_ty_6 = _bindgen_ty_6::TCP_NLA_PACING_RATE;
++pub const TCP_NLA_DELIVERY_RATE: _bindgen_ty_6 = _bindgen_ty_6::TCP_NLA_DELIVERY_RATE;
++pub const TCP_NLA_SND_CWND: _bindgen_ty_6 = _bindgen_ty_6::TCP_NLA_SND_CWND;
++pub const TCP_NLA_REORDERING: _bindgen_ty_6 = _bindgen_ty_6::TCP_NLA_REORDERING;
++pub const TCP_NLA_MIN_RTT: _bindgen_ty_6 = _bindgen_ty_6::TCP_NLA_MIN_RTT;
++pub const TCP_NLA_RECUR_RETRANS: _bindgen_ty_6 = _bindgen_ty_6::TCP_NLA_RECUR_RETRANS;
++pub const TCP_NLA_DELIVERY_RATE_APP_LMT: _bindgen_ty_6 = _bindgen_ty_6::TCP_NLA_DELIVERY_RATE_APP_LMT;
++pub const TCP_NLA_SNDQ_SIZE: _bindgen_ty_6 = _bindgen_ty_6::TCP_NLA_SNDQ_SIZE;
++pub const TCP_NLA_CA_STATE: _bindgen_ty_6 = _bindgen_ty_6::TCP_NLA_CA_STATE;
++pub const TCP_NLA_SND_SSTHRESH: _bindgen_ty_6 = _bindgen_ty_6::TCP_NLA_SND_SSTHRESH;
++pub const TCP_NLA_DELIVERED: _bindgen_ty_6 = _bindgen_ty_6::TCP_NLA_DELIVERED;
++pub const TCP_NLA_DELIVERED_CE: _bindgen_ty_6 = _bindgen_ty_6::TCP_NLA_DELIVERED_CE;
++pub const TCP_NLA_BYTES_SENT: _bindgen_ty_6 = _bindgen_ty_6::TCP_NLA_BYTES_SENT;
++pub const TCP_NLA_BYTES_RETRANS: _bindgen_ty_6 = _bindgen_ty_6::TCP_NLA_BYTES_RETRANS;
++pub const TCP_NLA_DSACK_DUPS: _bindgen_ty_6 = _bindgen_ty_6::TCP_NLA_DSACK_DUPS;
++pub const TCP_NLA_REORD_SEEN: _bindgen_ty_6 = _bindgen_ty_6::TCP_NLA_REORD_SEEN;
++pub const TCP_NLA_SRTT: _bindgen_ty_6 = _bindgen_ty_6::TCP_NLA_SRTT;
++pub const TCP_NLA_TIMEOUT_REHASH: _bindgen_ty_6 = _bindgen_ty_6::TCP_NLA_TIMEOUT_REHASH;
++pub const TCP_NLA_BYTES_NOTSENT: _bindgen_ty_6 = _bindgen_ty_6::TCP_NLA_BYTES_NOTSENT;
++pub const TCP_NLA_EDT: _bindgen_ty_6 = _bindgen_ty_6::TCP_NLA_EDT;
++pub const TCP_NLA_TTL: _bindgen_ty_6 = _bindgen_ty_6::TCP_NLA_TTL;
++pub const TCP_NLA_REHASH: _bindgen_ty_6 = _bindgen_ty_6::TCP_NLA_REHASH;
++pub const IF_OPER_UNKNOWN: _bindgen_ty_7 = _bindgen_ty_7::IF_OPER_UNKNOWN;
++pub const IF_OPER_NOTPRESENT: _bindgen_ty_7 = _bindgen_ty_7::IF_OPER_NOTPRESENT;
++pub const IF_OPER_DOWN: _bindgen_ty_7 = _bindgen_ty_7::IF_OPER_DOWN;
++pub const IF_OPER_LOWERLAYERDOWN: _bindgen_ty_7 = _bindgen_ty_7::IF_OPER_LOWERLAYERDOWN;
++pub const IF_OPER_TESTING: _bindgen_ty_7 = _bindgen_ty_7::IF_OPER_TESTING;
++pub const IF_OPER_DORMANT: _bindgen_ty_7 = _bindgen_ty_7::IF_OPER_DORMANT;
++pub const IF_OPER_UP: _bindgen_ty_7 = _bindgen_ty_7::IF_OPER_UP;
++pub const IF_LINK_MODE_DEFAULT: _bindgen_ty_8 = _bindgen_ty_8::IF_LINK_MODE_DEFAULT;
++pub const IF_LINK_MODE_DORMANT: _bindgen_ty_8 = _bindgen_ty_8::IF_LINK_MODE_DORMANT;
++pub const IF_LINK_MODE_TESTING: _bindgen_ty_8 = _bindgen_ty_8::IF_LINK_MODE_TESTING;
++pub const NFPROTO_UNSPEC: _bindgen_ty_9 = _bindgen_ty_9::NFPROTO_UNSPEC;
++pub const NFPROTO_INET: _bindgen_ty_9 = _bindgen_ty_9::NFPROTO_INET;
++pub const NFPROTO_IPV4: _bindgen_ty_9 = _bindgen_ty_9::NFPROTO_IPV4;
++pub const NFPROTO_ARP: _bindgen_ty_9 = _bindgen_ty_9::NFPROTO_ARP;
++pub const NFPROTO_NETDEV: _bindgen_ty_9 = _bindgen_ty_9::NFPROTO_NETDEV;
++pub const NFPROTO_BRIDGE: _bindgen_ty_9 = _bindgen_ty_9::NFPROTO_BRIDGE;
++pub const NFPROTO_IPV6: _bindgen_ty_9 = _bindgen_ty_9::NFPROTO_IPV6;
++pub const NFPROTO_DECNET: _bindgen_ty_9 = _bindgen_ty_9::NFPROTO_DECNET;
++pub const NFPROTO_NUMPROTO: _bindgen_ty_9 = _bindgen_ty_9::NFPROTO_NUMPROTO;
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_1 {
++IPPROTO_IP = 0,
++IPPROTO_ICMP = 1,
++IPPROTO_IGMP = 2,
++IPPROTO_IPIP = 4,
++IPPROTO_TCP = 6,
++IPPROTO_EGP = 8,
++IPPROTO_PUP = 12,
++IPPROTO_UDP = 17,
++IPPROTO_IDP = 22,
++IPPROTO_TP = 29,
++IPPROTO_DCCP = 33,
++IPPROTO_IPV6 = 41,
++IPPROTO_RSVP = 46,
++IPPROTO_GRE = 47,
++IPPROTO_ESP = 50,
++IPPROTO_AH = 51,
++IPPROTO_MTP = 92,
++IPPROTO_BEETPH = 94,
++IPPROTO_ENCAP = 98,
++IPPROTO_PIM = 103,
++IPPROTO_COMP = 108,
++IPPROTO_L2TP = 115,
++IPPROTO_SCTP = 132,
++IPPROTO_UDPLITE = 136,
++IPPROTO_MPLS = 137,
++IPPROTO_ETHERNET = 143,
++IPPROTO_RAW = 255,
++IPPROTO_MPTCP = 262,
++IPPROTO_MAX = 263,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_2 {
++IPV4_DEVCONF_FORWARDING = 1,
++IPV4_DEVCONF_MC_FORWARDING = 2,
++IPV4_DEVCONF_PROXY_ARP = 3,
++IPV4_DEVCONF_ACCEPT_REDIRECTS = 4,
++IPV4_DEVCONF_SECURE_REDIRECTS = 5,
++IPV4_DEVCONF_SEND_REDIRECTS = 6,
++IPV4_DEVCONF_SHARED_MEDIA = 7,
++IPV4_DEVCONF_RP_FILTER = 8,
++IPV4_DEVCONF_ACCEPT_SOURCE_ROUTE = 9,
++IPV4_DEVCONF_BOOTP_RELAY = 10,
++IPV4_DEVCONF_LOG_MARTIANS = 11,
++IPV4_DEVCONF_TAG = 12,
++IPV4_DEVCONF_ARPFILTER = 13,
++IPV4_DEVCONF_MEDIUM_ID = 14,
++IPV4_DEVCONF_NOXFRM = 15,
++IPV4_DEVCONF_NOPOLICY = 16,
++IPV4_DEVCONF_FORCE_IGMP_VERSION = 17,
++IPV4_DEVCONF_ARP_ANNOUNCE = 18,
++IPV4_DEVCONF_ARP_IGNORE = 19,
++IPV4_DEVCONF_PROMOTE_SECONDARIES = 20,
++IPV4_DEVCONF_ARP_ACCEPT = 21,
++IPV4_DEVCONF_ARP_NOTIFY = 22,
++IPV4_DEVCONF_ACCEPT_LOCAL = 23,
++IPV4_DEVCONF_SRC_VMARK = 24,
++IPV4_DEVCONF_PROXY_ARP_PVLAN = 25,
++IPV4_DEVCONF_ROUTE_LOCALNET = 26,
++IPV4_DEVCONF_IGMPV2_UNSOLICITED_REPORT_INTERVAL = 27,
++IPV4_DEVCONF_IGMPV3_UNSOLICITED_REPORT_INTERVAL = 28,
++IPV4_DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN = 29,
++IPV4_DEVCONF_DROP_UNICAST_IN_L2_MULTICAST = 30,
++IPV4_DEVCONF_DROP_GRATUITOUS_ARP = 31,
++IPV4_DEVCONF_BC_FORWARDING = 32,
++IPV4_DEVCONF_ARP_EVICT_NOCARRIER = 33,
++__IPV4_DEVCONF_MAX = 34,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_3 {
++DEVCONF_FORWARDING = 0,
++DEVCONF_HOPLIMIT = 1,
++DEVCONF_MTU6 = 2,
++DEVCONF_ACCEPT_RA = 3,
++DEVCONF_ACCEPT_REDIRECTS = 4,
++DEVCONF_AUTOCONF = 5,
++DEVCONF_DAD_TRANSMITS = 6,
++DEVCONF_RTR_SOLICITS = 7,
++DEVCONF_RTR_SOLICIT_INTERVAL = 8,
++DEVCONF_RTR_SOLICIT_DELAY = 9,
++DEVCONF_USE_TEMPADDR = 10,
++DEVCONF_TEMP_VALID_LFT = 11,
++DEVCONF_TEMP_PREFERED_LFT = 12,
++DEVCONF_REGEN_MAX_RETRY = 13,
++DEVCONF_MAX_DESYNC_FACTOR = 14,
++DEVCONF_MAX_ADDRESSES = 15,
++DEVCONF_FORCE_MLD_VERSION = 16,
++DEVCONF_ACCEPT_RA_DEFRTR = 17,
++DEVCONF_ACCEPT_RA_PINFO = 18,
++DEVCONF_ACCEPT_RA_RTR_PREF = 19,
++DEVCONF_RTR_PROBE_INTERVAL = 20,
++DEVCONF_ACCEPT_RA_RT_INFO_MAX_PLEN = 21,
++DEVCONF_PROXY_NDP = 22,
++DEVCONF_OPTIMISTIC_DAD = 23,
++DEVCONF_ACCEPT_SOURCE_ROUTE = 24,
++DEVCONF_MC_FORWARDING = 25,
++DEVCONF_DISABLE_IPV6 = 26,
++DEVCONF_ACCEPT_DAD = 27,
++DEVCONF_FORCE_TLLAO = 28,
++DEVCONF_NDISC_NOTIFY = 29,
++DEVCONF_MLDV1_UNSOLICITED_REPORT_INTERVAL = 30,
++DEVCONF_MLDV2_UNSOLICITED_REPORT_INTERVAL = 31,
++DEVCONF_SUPPRESS_FRAG_NDISC = 32,
++DEVCONF_ACCEPT_RA_FROM_LOCAL = 33,
++DEVCONF_USE_OPTIMISTIC = 34,
++DEVCONF_ACCEPT_RA_MTU = 35,
++DEVCONF_STABLE_SECRET = 36,
++DEVCONF_USE_OIF_ADDRS_ONLY = 37,
++DEVCONF_ACCEPT_RA_MIN_HOP_LIMIT = 38,
++DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN = 39,
++DEVCONF_DROP_UNICAST_IN_L2_MULTICAST = 40,
++DEVCONF_DROP_UNSOLICITED_NA = 41,
++DEVCONF_KEEP_ADDR_ON_DOWN = 42,
++DEVCONF_RTR_SOLICIT_MAX_INTERVAL = 43,
++DEVCONF_SEG6_ENABLED = 44,
++DEVCONF_SEG6_REQUIRE_HMAC = 45,
++DEVCONF_ENHANCED_DAD = 46,
++DEVCONF_ADDR_GEN_MODE = 47,
++DEVCONF_DISABLE_POLICY = 48,
++DEVCONF_ACCEPT_RA_RT_INFO_MIN_PLEN = 49,
++DEVCONF_NDISC_TCLASS = 50,
++DEVCONF_RPL_SEG_ENABLED = 51,
++DEVCONF_RA_DEFRTR_METRIC = 52,
++DEVCONF_IOAM6_ENABLED = 53,
++DEVCONF_IOAM6_ID = 54,
++DEVCONF_IOAM6_ID_WIDE = 55,
++DEVCONF_NDISC_EVICT_NOCARRIER = 56,
++DEVCONF_ACCEPT_UNTRACKED_NA = 57,
++DEVCONF_MAX = 58,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum socket_state {
++SS_FREE = 0,
++SS_UNCONNECTED = 1,
++SS_CONNECTING = 2,
++SS_CONNECTED = 3,
++SS_DISCONNECTING = 4,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_4 {
++TCP_FLAG_CWR = 8388608,
++TCP_FLAG_ECE = 4194304,
++TCP_FLAG_URG = 2097152,
++TCP_FLAG_ACK = 1048576,
++TCP_FLAG_PSH = 524288,
++TCP_FLAG_RST = 262144,
++TCP_FLAG_SYN = 131072,
++TCP_FLAG_FIN = 65536,
++TCP_RESERVED_BITS = 251658240,
++TCP_DATA_OFFSET = 4026531840,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_5 {
++TCP_NO_QUEUE = 0,
++TCP_RECV_QUEUE = 1,
++TCP_SEND_QUEUE = 2,
++TCP_QUEUES_NR = 3,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum tcp_fastopen_client_fail {
++TFO_STATUS_UNSPEC = 0,
++TFO_COOKIE_UNAVAILABLE = 1,
++TFO_DATA_NOT_ACKED = 2,
++TFO_SYN_RETRANSMITTED = 3,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum tcp_ca_state {
++TCP_CA_Open = 0,
++TCP_CA_Disorder = 1,
++TCP_CA_CWR = 2,
++TCP_CA_Recovery = 3,
++TCP_CA_Loss = 4,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_6 {
++TCP_NLA_PAD = 0,
++TCP_NLA_BUSY = 1,
++TCP_NLA_RWND_LIMITED = 2,
++TCP_NLA_SNDBUF_LIMITED = 3,
++TCP_NLA_DATA_SEGS_OUT = 4,
++TCP_NLA_TOTAL_RETRANS = 5,
++TCP_NLA_PACING_RATE = 6,
++TCP_NLA_DELIVERY_RATE = 7,
++TCP_NLA_SND_CWND = 8,
++TCP_NLA_REORDERING = 9,
++TCP_NLA_MIN_RTT = 10,
++TCP_NLA_RECUR_RETRANS = 11,
++TCP_NLA_DELIVERY_RATE_APP_LMT = 12,
++TCP_NLA_SNDQ_SIZE = 13,
++TCP_NLA_CA_STATE = 14,
++TCP_NLA_SND_SSTHRESH = 15,
++TCP_NLA_DELIVERED = 16,
++TCP_NLA_DELIVERED_CE = 17,
++TCP_NLA_BYTES_SENT = 18,
++TCP_NLA_BYTES_RETRANS = 19,
++TCP_NLA_DSACK_DUPS = 20,
++TCP_NLA_REORD_SEEN = 21,
++TCP_NLA_SRTT = 22,
++TCP_NLA_TIMEOUT_REHASH = 23,
++TCP_NLA_BYTES_NOTSENT = 24,
++TCP_NLA_EDT = 25,
++TCP_NLA_TTL = 26,
++TCP_NLA_REHASH = 27,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum net_device_flags {
++IFF_UP = 1,
++IFF_BROADCAST = 2,
++IFF_DEBUG = 4,
++IFF_LOOPBACK = 8,
++IFF_POINTOPOINT = 16,
++IFF_NOTRAILERS = 32,
++IFF_RUNNING = 64,
++IFF_NOARP = 128,
++IFF_PROMISC = 256,
++IFF_ALLMULTI = 512,
++IFF_MASTER = 1024,
++IFF_SLAVE = 2048,
++IFF_MULTICAST = 4096,
++IFF_PORTSEL = 8192,
++IFF_AUTOMEDIA = 16384,
++IFF_DYNAMIC = 32768,
++IFF_LOWER_UP = 65536,
++IFF_DORMANT = 131072,
++IFF_ECHO = 262144,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_7 {
++IF_OPER_UNKNOWN = 0,
++IF_OPER_NOTPRESENT = 1,
++IF_OPER_DOWN = 2,
++IF_OPER_LOWERLAYERDOWN = 3,
++IF_OPER_TESTING = 4,
++IF_OPER_DORMANT = 5,
++IF_OPER_UP = 6,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_8 {
++IF_LINK_MODE_DEFAULT = 0,
++IF_LINK_MODE_DORMANT = 1,
++IF_LINK_MODE_TESTING = 2,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum nf_inet_hooks {
++NF_INET_PRE_ROUTING = 0,
++NF_INET_LOCAL_IN = 1,
++NF_INET_FORWARD = 2,
++NF_INET_LOCAL_OUT = 3,
++NF_INET_POST_ROUTING = 4,
++NF_INET_NUMHOOKS = 5,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum nf_dev_hooks {
++NF_NETDEV_INGRESS = 0,
++NF_NETDEV_EGRESS = 1,
++NF_NETDEV_NUMHOOKS = 2,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_9 {
++NFPROTO_UNSPEC = 0,
++NFPROTO_INET = 1,
++NFPROTO_IPV4 = 2,
++NFPROTO_ARP = 3,
++NFPROTO_NETDEV = 5,
++NFPROTO_BRIDGE = 7,
++NFPROTO_IPV6 = 10,
++NFPROTO_DECNET = 12,
++NFPROTO_NUMPROTO = 13,
++}
++#[repr(i32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum nf_ip6_hook_priorities {
++NF_IP6_PRI_FIRST = -2147483648,
++NF_IP6_PRI_RAW_BEFORE_DEFRAG = -450,
++NF_IP6_PRI_CONNTRACK_DEFRAG = -400,
++NF_IP6_PRI_RAW = -300,
++NF_IP6_PRI_SELINUX_FIRST = -225,
++NF_IP6_PRI_CONNTRACK = -200,
++NF_IP6_PRI_MANGLE = -150,
++NF_IP6_PRI_NAT_DST = -100,
++NF_IP6_PRI_FILTER = 0,
++NF_IP6_PRI_SECURITY = 50,
++NF_IP6_PRI_NAT_SRC = 100,
++NF_IP6_PRI_SELINUX_LAST = 225,
++NF_IP6_PRI_CONNTRACK_HELPER = 300,
++NF_IP6_PRI_LAST = 2147483647,
++}
++#[repr(i32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum nf_ip_hook_priorities {
++NF_IP_PRI_FIRST = -2147483648,
++NF_IP_PRI_RAW_BEFORE_DEFRAG = -450,
++NF_IP_PRI_CONNTRACK_DEFRAG = -400,
++NF_IP_PRI_RAW = -300,
++NF_IP_PRI_SELINUX_FIRST = -225,
++NF_IP_PRI_CONNTRACK = -200,
++NF_IP_PRI_MANGLE = -150,
++NF_IP_PRI_NAT_DST = -100,
++NF_IP_PRI_FILTER = 0,
++NF_IP_PRI_SECURITY = 50,
++NF_IP_PRI_NAT_SRC = 100,
++NF_IP_PRI_SELINUX_LAST = 225,
++NF_IP_PRI_CONNTRACK_HELPER = 300,
++NF_IP_PRI_CONNTRACK_CONFIRM = 2147483647,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub union __kernel_sockaddr_storage__bindgen_ty_1 {
++pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1,
++pub __align: *mut crate::ctypes::c_void,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub union iphdr__bindgen_ty_1 {
++pub __bindgen_anon_1: iphdr__bindgen_ty_1__bindgen_ty_1,
++pub addrs: iphdr__bindgen_ty_1__bindgen_ty_2,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub union in6_addr__bindgen_ty_1 {
++pub u6_addr8: [__u8; 16usize],
++pub u6_addr16: [__be16; 8usize],
++pub u6_addr32: [__be32; 4usize],
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub union ipv6hdr__bindgen_ty_1 {
++pub __bindgen_anon_1: ipv6hdr__bindgen_ty_1__bindgen_ty_1,
++pub addrs: ipv6hdr__bindgen_ty_1__bindgen_ty_2,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub union tcp_word_hdr {
++pub hdr: tcphdr,
++pub words: [__be32; 5usize],
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub union if_settings__bindgen_ty_1 {
++pub raw_hdlc: *mut raw_hdlc_proto,
++pub cisco: *mut cisco_proto,
++pub fr: *mut fr_proto,
++pub fr_pvc: *mut fr_proto_pvc,
++pub fr_pvc_info: *mut fr_proto_pvc_info,
++pub x25: *mut x25_hdlc_proto,
++pub sync: *mut sync_serial_settings,
++pub te1: *mut te1_settings,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub union ifreq__bindgen_ty_1 {
++pub ifrn_name: [crate::ctypes::c_char; 16usize],
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub union ifreq__bindgen_ty_2 {
++pub ifru_addr: sockaddr,
++pub ifru_dstaddr: sockaddr,
++pub ifru_broadaddr: sockaddr,
++pub ifru_netmask: sockaddr,
++pub ifru_hwaddr: sockaddr,
++pub ifru_flags: crate::ctypes::c_short,
++pub ifru_ivalue: crate::ctypes::c_int,
++pub ifru_mtu: crate::ctypes::c_int,
++pub ifru_map: ifmap,
++pub ifru_slave: [crate::ctypes::c_char; 16usize],
++pub ifru_newname: [crate::ctypes::c_char; 16usize],
++pub ifru_data: *mut crate::ctypes::c_void,
++pub ifru_settings: if_settings,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub union ifconf__bindgen_ty_1 {
++pub ifcu_buf: *mut crate::ctypes::c_char,
++pub ifcu_req: *mut ifreq,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub union nf_inet_addr {
++pub all: [__u32; 4usize],
++pub ip: __be32,
++pub ip6: [__be32; 4usize],
++pub in_: in_addr,
++pub in6: in6_addr,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub union xt_entry_match__bindgen_ty_1 {
++pub user: xt_entry_match__bindgen_ty_1__bindgen_ty_1,
++pub kernel: xt_entry_match__bindgen_ty_1__bindgen_ty_2,
++pub match_size: __u16,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub union xt_entry_target__bindgen_ty_1 {
++pub user: xt_entry_target__bindgen_ty_1__bindgen_ty_1,
++pub kernel: xt_entry_target__bindgen_ty_1__bindgen_ty_2,
++pub target_size: __u16,
++}
++impl<Storage> __BindgenBitfieldUnit<Storage> {
++#[inline]
++pub const fn new(storage: Storage) -> Self {
++Self { storage }
++}
++}
++impl<Storage> __BindgenBitfieldUnit<Storage>
++where
++Storage: AsRef<[u8]> + AsMut<[u8]>,
++{
++#[inline]
++pub fn get_bit(&self, index: usize) -> bool {
++debug_assert!(index / 8 < self.storage.as_ref().len());
++let byte_index = index / 8;
++let byte = self.storage.as_ref()[byte_index];
++let bit_index = if cfg!(target_endian = "big") { 7 - (index % 8) } else { index % 8 };
++let mask = 1 << bit_index;
++byte & mask == mask
++}
++#[inline]
++pub fn set_bit(&mut self, index: usize, val: bool) {
++debug_assert!(index / 8 < self.storage.as_ref().len());
++let byte_index = index / 8;
++let byte = &mut self.storage.as_mut()[byte_index];
++let bit_index = if cfg!(target_endian = "big") { 7 - (index % 8) } else { index % 8 };
++let mask = 1 << bit_index;
++if val {
++*byte |= mask;
++} else {
++*byte &= !mask;
++}
++}
++#[inline]
++pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 {
++debug_assert!(bit_width <= 64);
++debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
++debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
++let mut val = 0;
++for i in 0..(bit_width as usize) {
++if self.get_bit(i + bit_offset) {
++let index = if cfg!(target_endian = "big") { bit_width as usize - 1 - i } else { i };
++val |= 1 << index;
++}
++}
++val
++}
++#[inline]
++pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) {
++debug_assert!(bit_width <= 64);
++debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
++debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
++for i in 0..(bit_width as usize) {
++let mask = 1 << i;
++let val_bit_is_set = val & mask == mask;
++let index = if cfg!(target_endian = "big") { bit_width as usize - 1 - i } else { i };
++self.set_bit(index + bit_offset, val_bit_is_set);
++}
++}
++}
++impl<T> __IncompleteArrayField<T> {
++#[inline]
++pub const fn new() -> Self {
++__IncompleteArrayField(::core::marker::PhantomData, [])
++}
++#[inline]
++pub fn as_ptr(&self) -> *const T {
++self as *const _ as *const T
++}
++#[inline]
++pub fn as_mut_ptr(&mut self) -> *mut T {
++self as *mut _ as *mut T
++}
++#[inline]
++pub unsafe fn as_slice(&self, len: usize) -> &[T] {
++::core::slice::from_raw_parts(self.as_ptr(), len)
++}
++#[inline]
++pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
++::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
++}
++}
++impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
++fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
++fmt.write_str("__IncompleteArrayField")
++}
++}
++impl<T> __BindgenUnionField<T> {
++#[inline]
++pub const fn new() -> Self {
++__BindgenUnionField(::core::marker::PhantomData)
++}
++#[inline]
++pub unsafe fn as_ref(&self) -> &T {
++::core::mem::transmute(self)
++}
++#[inline]
++pub unsafe fn as_mut(&mut self) -> &mut T {
++::core::mem::transmute(self)
++}
++}
++impl<T> ::core::default::Default for __BindgenUnionField<T> {
++#[inline]
++fn default() -> Self {
++Self::new()
++}
++}
++impl<T> ::core::clone::Clone for __BindgenUnionField<T> {
++#[inline]
++fn clone(&self) -> Self {
++Self::new()
++}
++}
++impl<T> ::core::marker::Copy for __BindgenUnionField<T> {}
++impl<T> ::core::fmt::Debug for __BindgenUnionField<T> {
++fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
++fmt.write_str("__BindgenUnionField")
++}
++}
++impl<T> ::core::hash::Hash for __BindgenUnionField<T> {
++fn hash<H: ::core::hash::Hasher>(&self, _state: &mut H) {}
++}
++impl<T> ::core::cmp::PartialEq for __BindgenUnionField<T> {
++fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
++true
++}
++}
++impl<T> ::core::cmp::Eq for __BindgenUnionField<T> {}
++impl iphdr {
++#[inline]
++pub fn version(&self) -> __u8 {
++unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
++}
++#[inline]
++pub fn set_version(&mut self, val: __u8) {
++unsafe {
++let val: u8 = ::core::mem::transmute(val);
++self._bitfield_1.set(0usize, 4u8, val as u64)
++}
++}
++#[inline]
++pub fn ihl(&self) -> __u8 {
++unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
++}
++#[inline]
++pub fn set_ihl(&mut self, val: __u8) {
++unsafe {
++let val: u8 = ::core::mem::transmute(val);
++self._bitfield_1.set(4usize, 4u8, val as u64)
++}
++}
++#[inline]
++pub fn new_bitfield_1(version: __u8, ihl: __u8) -> __BindgenBitfieldUnit<[u8; 1usize]> {
++let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
++__bindgen_bitfield_unit.set(0usize, 4u8, {
++let version: u8 = unsafe { ::core::mem::transmute(version) };
++version as u64
++});
++__bindgen_bitfield_unit.set(4usize, 4u8, {
++let ihl: u8 = unsafe { ::core::mem::transmute(ihl) };
++ihl as u64
++});
++__bindgen_bitfield_unit
++}
++}
++impl ipv6hdr {
++#[inline]
++pub fn version(&self) -> __u8 {
++unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
++}
++#[inline]
++pub fn set_version(&mut self, val: __u8) {
++unsafe {
++let val: u8 = ::core::mem::transmute(val);
++self._bitfield_1.set(0usize, 4u8, val as u64)
++}
++}
++#[inline]
++pub fn priority(&self) -> __u8 {
++unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
++}
++#[inline]
++pub fn set_priority(&mut self, val: __u8) {
++unsafe {
++let val: u8 = ::core::mem::transmute(val);
++self._bitfield_1.set(4usize, 4u8, val as u64)
++}
++}
++#[inline]
++pub fn new_bitfield_1(version: __u8, priority: __u8) -> __BindgenBitfieldUnit<[u8; 1usize]> {
++let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
++__bindgen_bitfield_unit.set(0usize, 4u8, {
++let version: u8 = unsafe { ::core::mem::transmute(version) };
++version as u64
++});
++__bindgen_bitfield_unit.set(4usize, 4u8, {
++let priority: u8 = unsafe { ::core::mem::transmute(priority) };
++priority as u64
++});
++__bindgen_bitfield_unit
++}
++}
++impl tcphdr {
++#[inline]
++pub fn doff(&self) -> __u16 {
++unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u16) }
++}
++#[inline]
++pub fn set_doff(&mut self, val: __u16) {
++unsafe {
++let val: u16 = ::core::mem::transmute(val);
++self._bitfield_1.set(0usize, 4u8, val as u64)
++}
++}
++#[inline]
++pub fn res1(&self) -> __u16 {
++unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u16) }
++}
++#[inline]
++pub fn set_res1(&mut self, val: __u16) {
++unsafe {
++let val: u16 = ::core::mem::transmute(val);
++self._bitfield_1.set(4usize, 4u8, val as u64)
++}
++}
++#[inline]
++pub fn cwr(&self) -> __u16 {
++unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u16) }
++}
++#[inline]
++pub fn set_cwr(&mut self, val: __u16) {
++unsafe {
++let val: u16 = ::core::mem::transmute(val);
++self._bitfield_1.set(8usize, 1u8, val as u64)
++}
++}
++#[inline]
++pub fn ece(&self) -> __u16 {
++unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u16) }
++}
++#[inline]
++pub fn set_ece(&mut self, val: __u16) {
++unsafe {
++let val: u16 = ::core::mem::transmute(val);
++self._bitfield_1.set(9usize, 1u8, val as u64)
++}
++}
++#[inline]
++pub fn urg(&self) -> __u16 {
++unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u16) }
++}
++#[inline]
++pub fn set_urg(&mut self, val: __u16) {
++unsafe {
++let val: u16 = ::core::mem::transmute(val);
++self._bitfield_1.set(10usize, 1u8, val as u64)
++}
++}
++#[inline]
++pub fn ack(&self) -> __u16 {
++unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u16) }
++}
++#[inline]
++pub fn set_ack(&mut self, val: __u16) {
++unsafe {
++let val: u16 = ::core::mem::transmute(val);
++self._bitfield_1.set(11usize, 1u8, val as u64)
++}
++}
++#[inline]
++pub fn psh(&self) -> __u16 {
++unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u16) }
++}
++#[inline]
++pub fn set_psh(&mut self, val: __u16) {
++unsafe {
++let val: u16 = ::core::mem::transmute(val);
++self._bitfield_1.set(12usize, 1u8, val as u64)
++}
++}
++#[inline]
++pub fn rst(&self) -> __u16 {
++unsafe { ::core::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u16) }
++}
++#[inline]
++pub fn set_rst(&mut self, val: __u16) {
++unsafe {
++let val: u16 = ::core::mem::transmute(val);
++self._bitfield_1.set(13usize, 1u8, val as u64)
++}
++}
++#[inline]
++pub fn syn(&self) -> __u16 {
++unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u16) }
++}
++#[inline]
++pub fn set_syn(&mut self, val: __u16) {
++unsafe {
++let val: u16 = ::core::mem::transmute(val);
++self._bitfield_1.set(14usize, 1u8, val as u64)
++}
++}
++#[inline]
++pub fn fin(&self) -> __u16 {
++unsafe { ::core::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u16) }
++}
++#[inline]
++pub fn set_fin(&mut self, val: __u16) {
++unsafe {
++let val: u16 = ::core::mem::transmute(val);
++self._bitfield_1.set(15usize, 1u8, val as u64)
++}
++}
++#[inline]
++pub fn new_bitfield_1(doff: __u16, res1: __u16, cwr: __u16, ece: __u16, urg: __u16, ack: __u16, psh: __u16, rst: __u16, syn: __u16, fin: __u16) -> __BindgenBitfieldUnit<[u8; 2usize]> {
++let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
++__bindgen_bitfield_unit.set(0usize, 4u8, {
++let doff: u16 = unsafe { ::core::mem::transmute(doff) };
++doff as u64
++});
++__bindgen_bitfield_unit.set(4usize, 4u8, {
++let res1: u16 = unsafe { ::core::mem::transmute(res1) };
++res1 as u64
++});
++__bindgen_bitfield_unit.set(8usize, 1u8, {
++let cwr: u16 = unsafe { ::core::mem::transmute(cwr) };
++cwr as u64
++});
++__bindgen_bitfield_unit.set(9usize, 1u8, {
++let ece: u16 = unsafe { ::core::mem::transmute(ece) };
++ece as u64
++});
++__bindgen_bitfield_unit.set(10usize, 1u8, {
++let urg: u16 = unsafe { ::core::mem::transmute(urg) };
++urg as u64
++});
++__bindgen_bitfield_unit.set(11usize, 1u8, {
++let ack: u16 = unsafe { ::core::mem::transmute(ack) };
++ack as u64
++});
++__bindgen_bitfield_unit.set(12usize, 1u8, {
++let psh: u16 = unsafe { ::core::mem::transmute(psh) };
++psh as u64
++});
++__bindgen_bitfield_unit.set(13usize, 1u8, {
++let rst: u16 = unsafe { ::core::mem::transmute(rst) };
++rst as u64
++});
++__bindgen_bitfield_unit.set(14usize, 1u8, {
++let syn: u16 = unsafe { ::core::mem::transmute(syn) };
++syn as u64
++});
++__bindgen_bitfield_unit.set(15usize, 1u8, {
++let fin: u16 = unsafe { ::core::mem::transmute(fin) };
++fin as u64
++});
++__bindgen_bitfield_unit
++}
++}
++impl tcp_info {
++#[inline]
++pub fn tcpi_snd_wscale(&self) -> __u8 {
++unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
++}
++#[inline]
++pub fn set_tcpi_snd_wscale(&mut self, val: __u8) {
++unsafe {
++let val: u8 = ::core::mem::transmute(val);
++self._bitfield_1.set(0usize, 4u8, val as u64)
++}
++}
++#[inline]
++pub fn tcpi_rcv_wscale(&self) -> __u8 {
++unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
++}
++#[inline]
++pub fn set_tcpi_rcv_wscale(&mut self, val: __u8) {
++unsafe {
++let val: u8 = ::core::mem::transmute(val);
++self._bitfield_1.set(4usize, 4u8, val as u64)
++}
++}
++#[inline]
++pub fn tcpi_delivery_rate_app_limited(&self) -> __u8 {
++unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u8) }
++}
++#[inline]
++pub fn set_tcpi_delivery_rate_app_limited(&mut self, val: __u8) {
++unsafe {
++let val: u8 = ::core::mem::transmute(val);
++self._bitfield_1.set(8usize, 1u8, val as u64)
++}
++}
++#[inline]
++pub fn tcpi_fastopen_client_fail(&self) -> __u8 {
++unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 2u8) as u8) }
++}
++#[inline]
++pub fn set_tcpi_fastopen_client_fail(&mut self, val: __u8) {
++unsafe {
++let val: u8 = ::core::mem::transmute(val);
++self._bitfield_1.set(9usize, 2u8, val as u64)
++}
++}
++#[inline]
++pub fn new_bitfield_1(tcpi_snd_wscale: __u8, tcpi_rcv_wscale: __u8, tcpi_delivery_rate_app_limited: __u8, tcpi_fastopen_client_fail: __u8) -> __BindgenBitfieldUnit<[u8; 2usize]> {
++let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
++__bindgen_bitfield_unit.set(0usize, 4u8, {
++let tcpi_snd_wscale: u8 = unsafe { ::core::mem::transmute(tcpi_snd_wscale) };
++tcpi_snd_wscale as u64
++});
++__bindgen_bitfield_unit.set(4usize, 4u8, {
++let tcpi_rcv_wscale: u8 = unsafe { ::core::mem::transmute(tcpi_rcv_wscale) };
++tcpi_rcv_wscale as u64
++});
++__bindgen_bitfield_unit.set(8usize, 1u8, {
++let tcpi_delivery_rate_app_limited: u8 = unsafe { ::core::mem::transmute(tcpi_delivery_rate_app_limited) };
++tcpi_delivery_rate_app_limited as u64
++});
++__bindgen_bitfield_unit.set(9usize, 2u8, {
++let tcpi_fastopen_client_fail: u8 = unsafe { ::core::mem::transmute(tcpi_fastopen_client_fail) };
++tcpi_fastopen_client_fail as u64
++});
++__bindgen_bitfield_unit
++}
++}
++impl nf_inet_hooks {
++pub const NF_INET_INGRESS: nf_inet_hooks = nf_inet_hooks::NF_INET_NUMHOOKS;
++}
++impl nf_ip_hook_priorities {
++pub const NF_IP_PRI_LAST: nf_ip_hook_priorities = nf_ip_hook_priorities::NF_IP_PRI_CONNTRACK_CONFIRM;
++}
+diff --git a/vendor/linux-raw-sys-0.4.14/src/sw_64/netlink.rs b/vendor/linux-raw-sys-0.4.14/src/sw_64/netlink.rs
+new file mode 100644
+index 00000000000..6fef6bb9750
+--- /dev/null
++++ b/vendor/linux-raw-sys-0.4.14/src/sw_64/netlink.rs
+@@ -0,0 +1,2864 @@
++/* automatically generated by rust-bindgen 0.66.1 */
++
++pub type __kernel_sa_family_t = crate::ctypes::c_ushort;
++pub type __s8 = crate::ctypes::c_schar;
++pub type __u8 = crate::ctypes::c_uchar;
++pub type __s16 = crate::ctypes::c_short;
++pub type __u16 = crate::ctypes::c_ushort;
++pub type __s32 = crate::ctypes::c_int;
++pub type __u32 = crate::ctypes::c_uint;
++pub type __s64 = crate::ctypes::c_long;
++pub type __u64 = crate::ctypes::c_ulong;
++pub type __kernel_key_t = crate::ctypes::c_int;
++pub type __kernel_mqd_t = crate::ctypes::c_int;
++pub type __kernel_daddr_t = crate::ctypes::c_long;
++pub type __kernel_long_t = crate::ctypes::c_long;
++pub type __kernel_ulong_t = crate::ctypes::c_ulong;
++pub type __kernel_ino_t = __kernel_ulong_t;
++pub type __kernel_mode_t = crate::ctypes::c_uint;
++pub type __kernel_pid_t = crate::ctypes::c_int;
++pub type __kernel_ipc_pid_t = crate::ctypes::c_int;
++pub type __kernel_uid_t = crate::ctypes::c_uint;
++pub type __kernel_gid_t = crate::ctypes::c_uint;
++pub type __kernel_suseconds_t = __kernel_long_t;
++pub type __kernel_uid32_t = crate::ctypes::c_uint;
++pub type __kernel_gid32_t = crate::ctypes::c_uint;
++pub type __kernel_old_uid_t = __kernel_uid_t;
++pub type __kernel_old_gid_t = __kernel_gid_t;
++pub type __kernel_old_dev_t = crate::ctypes::c_uint;
++pub type __kernel_size_t = __kernel_ulong_t;
++pub type __kernel_ssize_t = __kernel_long_t;
++pub type __kernel_ptrdiff_t = __kernel_long_t;
++pub type __kernel_off_t = __kernel_long_t;
++pub type __kernel_loff_t = crate::ctypes::c_longlong;
++pub type __kernel_old_time_t = __kernel_long_t;
++pub type __kernel_time_t = __kernel_long_t;
++pub type __kernel_time64_t = crate::ctypes::c_longlong;
++pub type __kernel_clock_t = __kernel_long_t;
++pub type __kernel_timer_t = crate::ctypes::c_int;
++pub type __kernel_clockid_t = crate::ctypes::c_int;
++pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
++pub type __kernel_uid16_t = crate::ctypes::c_ushort;
++pub type __kernel_gid16_t = crate::ctypes::c_ushort;
++pub type __le16 = __u16;
++pub type __be16 = __u16;
++pub type __le32 = __u32;
++pub type __be32 = __u32;
++pub type __le64 = __u64;
++pub type __be64 = __u64;
++pub type __sum16 = __u16;
++pub type __wsum = __u32;
++pub type __poll_t = crate::ctypes::c_uint;
++#[repr(C)]
++#[derive(Default)]
++pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub struct __kernel_sockaddr_storage {
++pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1 {
++pub ss_family: __kernel_sa_family_t,
++pub __data: [crate::ctypes::c_char; 126usize],
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct sockaddr_nl {
++pub nl_family: __kernel_sa_family_t,
++pub nl_pad: crate::ctypes::c_ushort,
++pub nl_pid: __u32,
++pub nl_groups: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct nlmsghdr {
++pub nlmsg_len: __u32,
++pub nlmsg_type: __u16,
++pub nlmsg_flags: __u16,
++pub nlmsg_seq: __u32,
++pub nlmsg_pid: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct nlmsgerr {
++pub error: crate::ctypes::c_int,
++pub msg: nlmsghdr,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct nl_pktinfo {
++pub group: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct nl_mmap_req {
++pub nm_block_size: crate::ctypes::c_uint,
++pub nm_block_nr: crate::ctypes::c_uint,
++pub nm_frame_size: crate::ctypes::c_uint,
++pub nm_frame_nr: crate::ctypes::c_uint,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct nl_mmap_hdr {
++pub nm_status: crate::ctypes::c_uint,
++pub nm_len: crate::ctypes::c_uint,
++pub nm_group: __u32,
++pub nm_pid: __u32,
++pub nm_uid: __u32,
++pub nm_gid: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct nlattr {
++pub nla_len: __u16,
++pub nla_type: __u16,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct nla_bitfield32 {
++pub value: __u32,
++pub selector: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct rtnl_link_stats {
++pub rx_packets: __u32,
++pub tx_packets: __u32,
++pub rx_bytes: __u32,
++pub tx_bytes: __u32,
++pub rx_errors: __u32,
++pub tx_errors: __u32,
++pub rx_dropped: __u32,
++pub tx_dropped: __u32,
++pub multicast: __u32,
++pub collisions: __u32,
++pub rx_length_errors: __u32,
++pub rx_over_errors: __u32,
++pub rx_crc_errors: __u32,
++pub rx_frame_errors: __u32,
++pub rx_fifo_errors: __u32,
++pub rx_missed_errors: __u32,
++pub tx_aborted_errors: __u32,
++pub tx_carrier_errors: __u32,
++pub tx_fifo_errors: __u32,
++pub tx_heartbeat_errors: __u32,
++pub tx_window_errors: __u32,
++pub rx_compressed: __u32,
++pub tx_compressed: __u32,
++pub rx_nohandler: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct rtnl_link_stats64 {
++pub rx_packets: __u64,
++pub tx_packets: __u64,
++pub rx_bytes: __u64,
++pub tx_bytes: __u64,
++pub rx_errors: __u64,
++pub tx_errors: __u64,
++pub rx_dropped: __u64,
++pub tx_dropped: __u64,
++pub multicast: __u64,
++pub collisions: __u64,
++pub rx_length_errors: __u64,
++pub rx_over_errors: __u64,
++pub rx_crc_errors: __u64,
++pub rx_frame_errors: __u64,
++pub rx_fifo_errors: __u64,
++pub rx_missed_errors: __u64,
++pub tx_aborted_errors: __u64,
++pub tx_carrier_errors: __u64,
++pub tx_fifo_errors: __u64,
++pub tx_heartbeat_errors: __u64,
++pub tx_window_errors: __u64,
++pub rx_compressed: __u64,
++pub tx_compressed: __u64,
++pub rx_nohandler: __u64,
++pub rx_otherhost_dropped: __u64,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct rtnl_hw_stats64 {
++pub rx_packets: __u64,
++pub tx_packets: __u64,
++pub rx_bytes: __u64,
++pub tx_bytes: __u64,
++pub rx_errors: __u64,
++pub tx_errors: __u64,
++pub rx_dropped: __u64,
++pub tx_dropped: __u64,
++pub multicast: __u64,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct rtnl_link_ifmap {
++pub mem_start: __u64,
++pub mem_end: __u64,
++pub base_addr: __u64,
++pub irq: __u16,
++pub dma: __u8,
++pub port: __u8,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ifla_bridge_id {
++pub prio: [__u8; 2usize],
++pub addr: [__u8; 6usize],
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ifla_cacheinfo {
++pub max_reasm_len: __u32,
++pub tstamp: __u32,
++pub reachable_time: __u32,
++pub retrans_time: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ifla_vlan_flags {
++pub flags: __u32,
++pub mask: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ifla_vlan_qos_mapping {
++pub from: __u32,
++pub to: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct tunnel_msg {
++pub family: __u8,
++pub flags: __u8,
++pub reserved2: __u16,
++pub ifindex: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ifla_vxlan_port_range {
++pub low: __be16,
++pub high: __be16,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ifla_vf_mac {
++pub vf: __u32,
++pub mac: [__u8; 32usize],
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ifla_vf_broadcast {
++pub broadcast: [__u8; 32usize],
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ifla_vf_vlan {
++pub vf: __u32,
++pub vlan: __u32,
++pub qos: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ifla_vf_vlan_info {
++pub vf: __u32,
++pub vlan: __u32,
++pub qos: __u32,
++pub vlan_proto: __be16,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ifla_vf_tx_rate {
++pub vf: __u32,
++pub rate: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ifla_vf_rate {
++pub vf: __u32,
++pub min_tx_rate: __u32,
++pub max_tx_rate: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ifla_vf_spoofchk {
++pub vf: __u32,
++pub setting: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ifla_vf_guid {
++pub vf: __u32,
++pub guid: __u64,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ifla_vf_link_state {
++pub vf: __u32,
++pub link_state: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ifla_vf_rss_query_en {
++pub vf: __u32,
++pub setting: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ifla_vf_trust {
++pub vf: __u32,
++pub setting: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ifla_port_vsi {
++pub vsi_mgr_id: __u8,
++pub vsi_type_id: [__u8; 3usize],
++pub vsi_type_version: __u8,
++pub pad: [__u8; 3usize],
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct if_stats_msg {
++pub family: __u8,
++pub pad1: __u8,
++pub pad2: __u16,
++pub ifindex: __u32,
++pub filter_mask: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ifla_rmnet_flags {
++pub flags: __u32,
++pub mask: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ifaddrmsg {
++pub ifa_family: __u8,
++pub ifa_prefixlen: __u8,
++pub ifa_flags: __u8,
++pub ifa_scope: __u8,
++pub ifa_index: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ifa_cacheinfo {
++pub ifa_prefered: __u32,
++pub ifa_valid: __u32,
++pub cstamp: __u32,
++pub tstamp: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ndmsg {
++pub ndm_family: __u8,
++pub ndm_pad1: __u8,
++pub ndm_pad2: __u16,
++pub ndm_ifindex: __s32,
++pub ndm_state: __u16,
++pub ndm_flags: __u8,
++pub ndm_type: __u8,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct nda_cacheinfo {
++pub ndm_confirmed: __u32,
++pub ndm_used: __u32,
++pub ndm_updated: __u32,
++pub ndm_refcnt: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ndt_stats {
++pub ndts_allocs: __u64,
++pub ndts_destroys: __u64,
++pub ndts_hash_grows: __u64,
++pub ndts_res_failed: __u64,
++pub ndts_lookups: __u64,
++pub ndts_hits: __u64,
++pub ndts_rcv_probes_mcast: __u64,
++pub ndts_rcv_probes_ucast: __u64,
++pub ndts_periodic_gc_runs: __u64,
++pub ndts_forced_gc_runs: __u64,
++pub ndts_table_fulls: __u64,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ndtmsg {
++pub ndtm_family: __u8,
++pub ndtm_pad1: __u8,
++pub ndtm_pad2: __u16,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ndt_config {
++pub ndtc_key_len: __u16,
++pub ndtc_entry_size: __u16,
++pub ndtc_entries: __u32,
++pub ndtc_last_flush: __u32,
++pub ndtc_last_rand: __u32,
++pub ndtc_hash_rnd: __u32,
++pub ndtc_hash_mask: __u32,
++pub ndtc_hash_chain_gc: __u32,
++pub ndtc_proxy_qlen: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct rtattr {
++pub rta_len: crate::ctypes::c_ushort,
++pub rta_type: crate::ctypes::c_ushort,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct rtmsg {
++pub rtm_family: crate::ctypes::c_uchar,
++pub rtm_dst_len: crate::ctypes::c_uchar,
++pub rtm_src_len: crate::ctypes::c_uchar,
++pub rtm_tos: crate::ctypes::c_uchar,
++pub rtm_table: crate::ctypes::c_uchar,
++pub rtm_protocol: crate::ctypes::c_uchar,
++pub rtm_scope: crate::ctypes::c_uchar,
++pub rtm_type: crate::ctypes::c_uchar,
++pub rtm_flags: crate::ctypes::c_uint,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct rtnexthop {
++pub rtnh_len: crate::ctypes::c_ushort,
++pub rtnh_flags: crate::ctypes::c_uchar,
++pub rtnh_hops: crate::ctypes::c_uchar,
++pub rtnh_ifindex: crate::ctypes::c_int,
++}
++#[repr(C)]
++#[derive(Debug)]
++pub struct rtvia {
++pub rtvia_family: __kernel_sa_family_t,
++pub rtvia_addr: __IncompleteArrayField<__u8>,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct rta_cacheinfo {
++pub rta_clntref: __u32,
++pub rta_lastuse: __u32,
++pub rta_expires: __s32,
++pub rta_error: __u32,
++pub rta_used: __u32,
++pub rta_id: __u32,
++pub rta_ts: __u32,
++pub rta_tsage: __u32,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub struct rta_session {
++pub proto: __u8,
++pub pad1: __u8,
++pub pad2: __u16,
++pub u: rta_session__bindgen_ty_1,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct rta_session__bindgen_ty_1__bindgen_ty_1 {
++pub sport: __u16,
++pub dport: __u16,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct rta_session__bindgen_ty_1__bindgen_ty_2 {
++pub type_: __u8,
++pub code: __u8,
++pub ident: __u16,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct rta_mfc_stats {
++pub mfcs_packets: __u64,
++pub mfcs_bytes: __u64,
++pub mfcs_wrong_if: __u64,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct rtgenmsg {
++pub rtgen_family: crate::ctypes::c_uchar,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct ifinfomsg {
++pub ifi_family: crate::ctypes::c_uchar,
++pub __ifi_pad: crate::ctypes::c_uchar,
++pub ifi_type: crate::ctypes::c_ushort,
++pub ifi_index: crate::ctypes::c_int,
++pub ifi_flags: crate::ctypes::c_uint,
++pub ifi_change: crate::ctypes::c_uint,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct prefixmsg {
++pub prefix_family: crate::ctypes::c_uchar,
++pub prefix_pad1: crate::ctypes::c_uchar,
++pub prefix_pad2: crate::ctypes::c_ushort,
++pub prefix_ifindex: crate::ctypes::c_int,
++pub prefix_type: crate::ctypes::c_uchar,
++pub prefix_len: crate::ctypes::c_uchar,
++pub prefix_flags: crate::ctypes::c_uchar,
++pub prefix_pad3: crate::ctypes::c_uchar,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct prefix_cacheinfo {
++pub preferred_time: __u32,
++pub valid_time: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct tcmsg {
++pub tcm_family: crate::ctypes::c_uchar,
++pub tcm__pad1: crate::ctypes::c_uchar,
++pub tcm__pad2: crate::ctypes::c_ushort,
++pub tcm_ifindex: crate::ctypes::c_int,
++pub tcm_handle: __u32,
++pub tcm_parent: __u32,
++pub tcm_info: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct nduseroptmsg {
++pub nduseropt_family: crate::ctypes::c_uchar,
++pub nduseropt_pad1: crate::ctypes::c_uchar,
++pub nduseropt_opts_len: crate::ctypes::c_ushort,
++pub nduseropt_ifindex: crate::ctypes::c_int,
++pub nduseropt_icmp_type: __u8,
++pub nduseropt_icmp_code: __u8,
++pub nduseropt_pad2: crate::ctypes::c_ushort,
++pub nduseropt_pad3: crate::ctypes::c_uint,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct tcamsg {
++pub tca_family: crate::ctypes::c_uchar,
++pub tca__pad1: crate::ctypes::c_uchar,
++pub tca__pad2: crate::ctypes::c_ushort,
++}
++pub const _K_SS_MAXSIZE: u32 = 128;
++pub const SOCK_SNDBUF_LOCK: u32 = 1;
++pub const SOCK_RCVBUF_LOCK: u32 = 2;
++pub const SOCK_BUF_LOCK_MASK: u32 = 3;
++pub const SOCK_TXREHASH_DEFAULT: u32 = 255;
++pub const SOCK_TXREHASH_DISABLED: u32 = 0;
++pub const SOCK_TXREHASH_ENABLED: u32 = 1;
++pub const _MIPS_ISA_MIPS1: u32 = 1;
++pub const _MIPS_ISA_MIPS2: u32 = 2;
++pub const _MIPS_ISA_MIPS3: u32 = 3;
++pub const _MIPS_ISA_MIPS4: u32 = 4;
++pub const _MIPS_ISA_MIPS5: u32 = 5;
++pub const _MIPS_ISA_MIPS32: u32 = 6;
++pub const _MIPS_ISA_MIPS64: u32 = 7;
++pub const _MIPS_SIM_ABI32: u32 = 1;
++pub const _MIPS_SIM_NABI32: u32 = 2;
++pub const _MIPS_SIM_ABI64: u32 = 3;
++pub const NETLINK_ROUTE: u32 = 0;
++pub const NETLINK_UNUSED: u32 = 1;
++pub const NETLINK_USERSOCK: u32 = 2;
++pub const NETLINK_FIREWALL: u32 = 3;
++pub const NETLINK_SOCK_DIAG: u32 = 4;
++pub const NETLINK_NFLOG: u32 = 5;
++pub const NETLINK_XFRM: u32 = 6;
++pub const NETLINK_SELINUX: u32 = 7;
++pub const NETLINK_ISCSI: u32 = 8;
++pub const NETLINK_AUDIT: u32 = 9;
++pub const NETLINK_FIB_LOOKUP: u32 = 10;
++pub const NETLINK_CONNECTOR: u32 = 11;
++pub const NETLINK_NETFILTER: u32 = 12;
++pub const NETLINK_IP6_FW: u32 = 13;
++pub const NETLINK_DNRTMSG: u32 = 14;
++pub const NETLINK_KOBJECT_UEVENT: u32 = 15;
++pub const NETLINK_GENERIC: u32 = 16;
++pub const NETLINK_SCSITRANSPORT: u32 = 18;
++pub const NETLINK_ECRYPTFS: u32 = 19;
++pub const NETLINK_RDMA: u32 = 20;
++pub const NETLINK_CRYPTO: u32 = 21;
++pub const NETLINK_SMC: u32 = 22;
++pub const NETLINK_INET_DIAG: u32 = 4;
++pub const MAX_LINKS: u32 = 32;
++pub const NLM_F_REQUEST: u32 = 1;
++pub const NLM_F_MULTI: u32 = 2;
++pub const NLM_F_ACK: u32 = 4;
++pub const NLM_F_ECHO: u32 = 8;
++pub const NLM_F_DUMP_INTR: u32 = 16;
++pub const NLM_F_DUMP_FILTERED: u32 = 32;
++pub const NLM_F_ROOT: u32 = 256;
++pub const NLM_F_MATCH: u32 = 512;
++pub const NLM_F_ATOMIC: u32 = 1024;
++pub const NLM_F_DUMP: u32 = 768;
++pub const NLM_F_REPLACE: u32 = 256;
++pub const NLM_F_EXCL: u32 = 512;
++pub const NLM_F_CREATE: u32 = 1024;
++pub const NLM_F_APPEND: u32 = 2048;
++pub const NLM_F_NONREC: u32 = 256;
++pub const NLM_F_BULK: u32 = 512;
++pub const NLM_F_CAPPED: u32 = 256;
++pub const NLM_F_ACK_TLVS: u32 = 512;
++pub const NLMSG_ALIGNTO: u32 = 4;
++pub const NLMSG_NOOP: u32 = 1;
++pub const NLMSG_ERROR: u32 = 2;
++pub const NLMSG_DONE: u32 = 3;
++pub const NLMSG_OVERRUN: u32 = 4;
++pub const NLMSG_MIN_TYPE: u32 = 16;
++pub const NETLINK_ADD_MEMBERSHIP: u32 = 1;
++pub const NETLINK_DROP_MEMBERSHIP: u32 = 2;
++pub const NETLINK_PKTINFO: u32 = 3;
++pub const NETLINK_BROADCAST_ERROR: u32 = 4;
++pub const NETLINK_NO_ENOBUFS: u32 = 5;
++pub const NETLINK_RX_RING: u32 = 6;
++pub const NETLINK_TX_RING: u32 = 7;
++pub const NETLINK_LISTEN_ALL_NSID: u32 = 8;
++pub const NETLINK_LIST_MEMBERSHIPS: u32 = 9;
++pub const NETLINK_CAP_ACK: u32 = 10;
++pub const NETLINK_EXT_ACK: u32 = 11;
++pub const NETLINK_GET_STRICT_CHK: u32 = 12;
++pub const NL_MMAP_MSG_ALIGNMENT: u32 = 4;
++pub const NET_MAJOR: u32 = 36;
++pub const NLA_F_NESTED: u32 = 32768;
++pub const NLA_F_NET_BYTEORDER: u32 = 16384;
++pub const NLA_TYPE_MASK: i32 = -49153;
++pub const NLA_ALIGNTO: u32 = 4;
++pub const MACVLAN_FLAG_NOPROMISC: u32 = 1;
++pub const MACVLAN_FLAG_NODST: u32 = 2;
++pub const IPVLAN_F_PRIVATE: u32 = 1;
++pub const IPVLAN_F_VEPA: u32 = 2;
++pub const TUNNEL_MSG_FLAG_STATS: u32 = 1;
++pub const TUNNEL_MSG_VALID_USER_FLAGS: u32 = 1;
++pub const MAX_VLAN_LIST_LEN: u32 = 1;
++pub const PORT_PROFILE_MAX: u32 = 40;
++pub const PORT_UUID_MAX: u32 = 16;
++pub const PORT_SELF_VF: i32 = -1;
++pub const XDP_FLAGS_UPDATE_IF_NOEXIST: u32 = 1;
++pub const XDP_FLAGS_SKB_MODE: u32 = 2;
++pub const XDP_FLAGS_DRV_MODE: u32 = 4;
++pub const XDP_FLAGS_HW_MODE: u32 = 8;
++pub const XDP_FLAGS_REPLACE: u32 = 16;
++pub const XDP_FLAGS_MODES: u32 = 14;
++pub const XDP_FLAGS_MASK: u32 = 31;
++pub const RMNET_FLAGS_INGRESS_DEAGGREGATION: u32 = 1;
++pub const RMNET_FLAGS_INGRESS_MAP_COMMANDS: u32 = 2;
++pub const RMNET_FLAGS_INGRESS_MAP_CKSUMV4: u32 = 4;
++pub const RMNET_FLAGS_EGRESS_MAP_CKSUMV4: u32 = 8;
++pub const RMNET_FLAGS_INGRESS_MAP_CKSUMV5: u32 = 16;
++pub const RMNET_FLAGS_EGRESS_MAP_CKSUMV5: u32 = 32;
++pub const IFA_F_SECONDARY: u32 = 1;
++pub const IFA_F_TEMPORARY: u32 = 1;
++pub const IFA_F_NODAD: u32 = 2;
++pub const IFA_F_OPTIMISTIC: u32 = 4;
++pub const IFA_F_DADFAILED: u32 = 8;
++pub const IFA_F_HOMEADDRESS: u32 = 16;
++pub const IFA_F_DEPRECATED: u32 = 32;
++pub const IFA_F_TENTATIVE: u32 = 64;
++pub const IFA_F_PERMANENT: u32 = 128;
++pub const IFA_F_MANAGETEMPADDR: u32 = 256;
++pub const IFA_F_NOPREFIXROUTE: u32 = 512;
++pub const IFA_F_MCAUTOJOIN: u32 = 1024;
++pub const IFA_F_STABLE_PRIVACY: u32 = 2048;
++pub const IFAPROT_UNSPEC: u32 = 0;
++pub const IFAPROT_KERNEL_LO: u32 = 1;
++pub const IFAPROT_KERNEL_RA: u32 = 2;
++pub const IFAPROT_KERNEL_LL: u32 = 3;
++pub const NTF_USE: u32 = 1;
++pub const NTF_SELF: u32 = 2;
++pub const NTF_MASTER: u32 = 4;
++pub const NTF_PROXY: u32 = 8;
++pub const NTF_EXT_LEARNED: u32 = 16;
++pub const NTF_OFFLOADED: u32 = 32;
++pub const NTF_STICKY: u32 = 64;
++pub const NTF_ROUTER: u32 = 128;
++pub const NTF_EXT_MANAGED: u32 = 1;
++pub const NTF_EXT_LOCKED: u32 = 2;
++pub const NUD_INCOMPLETE: u32 = 1;
++pub const NUD_REACHABLE: u32 = 2;
++pub const NUD_STALE: u32 = 4;
++pub const NUD_DELAY: u32 = 8;
++pub const NUD_PROBE: u32 = 16;
++pub const NUD_FAILED: u32 = 32;
++pub const NUD_NOARP: u32 = 64;
++pub const NUD_PERMANENT: u32 = 128;
++pub const NUD_NONE: u32 = 0;
++pub const RTNL_FAMILY_IPMR: u32 = 128;
++pub const RTNL_FAMILY_IP6MR: u32 = 129;
++pub const RTNL_FAMILY_MAX: u32 = 129;
++pub const RTA_ALIGNTO: u32 = 4;
++pub const RTPROT_UNSPEC: u32 = 0;
++pub const RTPROT_REDIRECT: u32 = 1;
++pub const RTPROT_KERNEL: u32 = 2;
++pub const RTPROT_BOOT: u32 = 3;
++pub const RTPROT_STATIC: u32 = 4;
++pub const RTPROT_GATED: u32 = 8;
++pub const RTPROT_RA: u32 = 9;
++pub const RTPROT_MRT: u32 = 10;
++pub const RTPROT_ZEBRA: u32 = 11;
++pub const RTPROT_BIRD: u32 = 12;
++pub const RTPROT_DNROUTED: u32 = 13;
++pub const RTPROT_XORP: u32 = 14;
++pub const RTPROT_NTK: u32 = 15;
++pub const RTPROT_DHCP: u32 = 16;
++pub const RTPROT_MROUTED: u32 = 17;
++pub const RTPROT_KEEPALIVED: u32 = 18;
++pub const RTPROT_BABEL: u32 = 42;
++pub const RTPROT_OPENR: u32 = 99;
++pub const RTPROT_BGP: u32 = 186;
++pub const RTPROT_ISIS: u32 = 187;
++pub const RTPROT_OSPF: u32 = 188;
++pub const RTPROT_RIP: u32 = 189;
++pub const RTPROT_EIGRP: u32 = 192;
++pub const RTM_F_NOTIFY: u32 = 256;
++pub const RTM_F_CLONED: u32 = 512;
++pub const RTM_F_EQUALIZE: u32 = 1024;
++pub const RTM_F_PREFIX: u32 = 2048;
++pub const RTM_F_LOOKUP_TABLE: u32 = 4096;
++pub const RTM_F_FIB_MATCH: u32 = 8192;
++pub const RTM_F_OFFLOAD: u32 = 16384;
++pub const RTM_F_TRAP: u32 = 32768;
++pub const RTM_F_OFFLOAD_FAILED: u32 = 536870912;
++pub const RTNH_F_DEAD: u32 = 1;
++pub const RTNH_F_PERVASIVE: u32 = 2;
++pub const RTNH_F_ONLINK: u32 = 4;
++pub const RTNH_F_OFFLOAD: u32 = 8;
++pub const RTNH_F_LINKDOWN: u32 = 16;
++pub const RTNH_F_UNRESOLVED: u32 = 32;
++pub const RTNH_F_TRAP: u32 = 64;
++pub const RTNH_COMPARE_MASK: u32 = 89;
++pub const RTNH_ALIGNTO: u32 = 4;
++pub const RTNETLINK_HAVE_PEERINFO: u32 = 1;
++pub const RTAX_FEATURE_ECN: u32 = 1;
++pub const RTAX_FEATURE_SACK: u32 = 2;
++pub const RTAX_FEATURE_TIMESTAMP: u32 = 4;
++pub const RTAX_FEATURE_ALLFRAG: u32 = 8;
++pub const RTAX_FEATURE_MASK: u32 = 15;
++pub const TCM_IFINDEX_MAGIC_BLOCK: u32 = 4294967295;
++pub const TCA_DUMP_FLAGS_TERSE: u32 = 1;
++pub const RTMGRP_LINK: u32 = 1;
++pub const RTMGRP_NOTIFY: u32 = 2;
++pub const RTMGRP_NEIGH: u32 = 4;
++pub const RTMGRP_TC: u32 = 8;
++pub const RTMGRP_IPV4_IFADDR: u32 = 16;
++pub const RTMGRP_IPV4_MROUTE: u32 = 32;
++pub const RTMGRP_IPV4_ROUTE: u32 = 64;
++pub const RTMGRP_IPV4_RULE: u32 = 128;
++pub const RTMGRP_IPV6_IFADDR: u32 = 256;
++pub const RTMGRP_IPV6_MROUTE: u32 = 512;
++pub const RTMGRP_IPV6_ROUTE: u32 = 1024;
++pub const RTMGRP_IPV6_IFINFO: u32 = 2048;
++pub const RTMGRP_DECnet_IFADDR: u32 = 4096;
++pub const RTMGRP_DECnet_ROUTE: u32 = 16384;
++pub const RTMGRP_IPV6_PREFIX: u32 = 131072;
++pub const TCA_FLAG_LARGE_DUMP_ON: u32 = 1;
++pub const TCA_ACT_FLAG_LARGE_DUMP_ON: u32 = 1;
++pub const TCA_ACT_FLAG_TERSE_DUMP: u32 = 2;
++pub const RTEXT_FILTER_VF: u32 = 1;
++pub const RTEXT_FILTER_BRVLAN: u32 = 2;
++pub const RTEXT_FILTER_BRVLAN_COMPRESSED: u32 = 4;
++pub const RTEXT_FILTER_SKIP_STATS: u32 = 8;
++pub const RTEXT_FILTER_MRP: u32 = 16;
++pub const RTEXT_FILTER_CFM_CONFIG: u32 = 32;
++pub const RTEXT_FILTER_CFM_STATUS: u32 = 64;
++pub const RTEXT_FILTER_MST: u32 = 128;
++pub const NETLINK_UNCONNECTED: _bindgen_ty_1 = _bindgen_ty_1::NETLINK_UNCONNECTED;
++pub const NETLINK_CONNECTED: _bindgen_ty_1 = _bindgen_ty_1::NETLINK_CONNECTED;
++pub const IFLA_UNSPEC: _bindgen_ty_2 = _bindgen_ty_2::IFLA_UNSPEC;
++pub const IFLA_ADDRESS: _bindgen_ty_2 = _bindgen_ty_2::IFLA_ADDRESS;
++pub const IFLA_BROADCAST: _bindgen_ty_2 = _bindgen_ty_2::IFLA_BROADCAST;
++pub const IFLA_IFNAME: _bindgen_ty_2 = _bindgen_ty_2::IFLA_IFNAME;
++pub const IFLA_MTU: _bindgen_ty_2 = _bindgen_ty_2::IFLA_MTU;
++pub const IFLA_LINK: _bindgen_ty_2 = _bindgen_ty_2::IFLA_LINK;
++pub const IFLA_QDISC: _bindgen_ty_2 = _bindgen_ty_2::IFLA_QDISC;
++pub const IFLA_STATS: _bindgen_ty_2 = _bindgen_ty_2::IFLA_STATS;
++pub const IFLA_COST: _bindgen_ty_2 = _bindgen_ty_2::IFLA_COST;
++pub const IFLA_PRIORITY: _bindgen_ty_2 = _bindgen_ty_2::IFLA_PRIORITY;
++pub const IFLA_MASTER: _bindgen_ty_2 = _bindgen_ty_2::IFLA_MASTER;
++pub const IFLA_WIRELESS: _bindgen_ty_2 = _bindgen_ty_2::IFLA_WIRELESS;
++pub const IFLA_PROTINFO: _bindgen_ty_2 = _bindgen_ty_2::IFLA_PROTINFO;
++pub const IFLA_TXQLEN: _bindgen_ty_2 = _bindgen_ty_2::IFLA_TXQLEN;
++pub const IFLA_MAP: _bindgen_ty_2 = _bindgen_ty_2::IFLA_MAP;
++pub const IFLA_WEIGHT: _bindgen_ty_2 = _bindgen_ty_2::IFLA_WEIGHT;
++pub const IFLA_OPERSTATE: _bindgen_ty_2 = _bindgen_ty_2::IFLA_OPERSTATE;
++pub const IFLA_LINKMODE: _bindgen_ty_2 = _bindgen_ty_2::IFLA_LINKMODE;
++pub const IFLA_LINKINFO: _bindgen_ty_2 = _bindgen_ty_2::IFLA_LINKINFO;
++pub const IFLA_NET_NS_PID: _bindgen_ty_2 = _bindgen_ty_2::IFLA_NET_NS_PID;
++pub const IFLA_IFALIAS: _bindgen_ty_2 = _bindgen_ty_2::IFLA_IFALIAS;
++pub const IFLA_NUM_VF: _bindgen_ty_2 = _bindgen_ty_2::IFLA_NUM_VF;
++pub const IFLA_VFINFO_LIST: _bindgen_ty_2 = _bindgen_ty_2::IFLA_VFINFO_LIST;
++pub const IFLA_STATS64: _bindgen_ty_2 = _bindgen_ty_2::IFLA_STATS64;
++pub const IFLA_VF_PORTS: _bindgen_ty_2 = _bindgen_ty_2::IFLA_VF_PORTS;
++pub const IFLA_PORT_SELF: _bindgen_ty_2 = _bindgen_ty_2::IFLA_PORT_SELF;
++pub const IFLA_AF_SPEC: _bindgen_ty_2 = _bindgen_ty_2::IFLA_AF_SPEC;
++pub const IFLA_GROUP: _bindgen_ty_2 = _bindgen_ty_2::IFLA_GROUP;
++pub const IFLA_NET_NS_FD: _bindgen_ty_2 = _bindgen_ty_2::IFLA_NET_NS_FD;
++pub const IFLA_EXT_MASK: _bindgen_ty_2 = _bindgen_ty_2::IFLA_EXT_MASK;
++pub const IFLA_PROMISCUITY: _bindgen_ty_2 = _bindgen_ty_2::IFLA_PROMISCUITY;
++pub const IFLA_NUM_TX_QUEUES: _bindgen_ty_2 = _bindgen_ty_2::IFLA_NUM_TX_QUEUES;
++pub const IFLA_NUM_RX_QUEUES: _bindgen_ty_2 = _bindgen_ty_2::IFLA_NUM_RX_QUEUES;
++pub const IFLA_CARRIER: _bindgen_ty_2 = _bindgen_ty_2::IFLA_CARRIER;
++pub const IFLA_PHYS_PORT_ID: _bindgen_ty_2 = _bindgen_ty_2::IFLA_PHYS_PORT_ID;
++pub const IFLA_CARRIER_CHANGES: _bindgen_ty_2 = _bindgen_ty_2::IFLA_CARRIER_CHANGES;
++pub const IFLA_PHYS_SWITCH_ID: _bindgen_ty_2 = _bindgen_ty_2::IFLA_PHYS_SWITCH_ID;
++pub const IFLA_LINK_NETNSID: _bindgen_ty_2 = _bindgen_ty_2::IFLA_LINK_NETNSID;
++pub const IFLA_PHYS_PORT_NAME: _bindgen_ty_2 = _bindgen_ty_2::IFLA_PHYS_PORT_NAME;
++pub const IFLA_PROTO_DOWN: _bindgen_ty_2 = _bindgen_ty_2::IFLA_PROTO_DOWN;
++pub const IFLA_GSO_MAX_SEGS: _bindgen_ty_2 = _bindgen_ty_2::IFLA_GSO_MAX_SEGS;
++pub const IFLA_GSO_MAX_SIZE: _bindgen_ty_2 = _bindgen_ty_2::IFLA_GSO_MAX_SIZE;
++pub const IFLA_PAD: _bindgen_ty_2 = _bindgen_ty_2::IFLA_PAD;
++pub const IFLA_XDP: _bindgen_ty_2 = _bindgen_ty_2::IFLA_XDP;
++pub const IFLA_EVENT: _bindgen_ty_2 = _bindgen_ty_2::IFLA_EVENT;
++pub const IFLA_NEW_NETNSID: _bindgen_ty_2 = _bindgen_ty_2::IFLA_NEW_NETNSID;
++pub const IFLA_IF_NETNSID: _bindgen_ty_2 = _bindgen_ty_2::IFLA_IF_NETNSID;
++pub const IFLA_TARGET_NETNSID: _bindgen_ty_2 = _bindgen_ty_2::IFLA_IF_NETNSID;
++pub const IFLA_CARRIER_UP_COUNT: _bindgen_ty_2 = _bindgen_ty_2::IFLA_CARRIER_UP_COUNT;
++pub const IFLA_CARRIER_DOWN_COUNT: _bindgen_ty_2 = _bindgen_ty_2::IFLA_CARRIER_DOWN_COUNT;
++pub const IFLA_NEW_IFINDEX: _bindgen_ty_2 = _bindgen_ty_2::IFLA_NEW_IFINDEX;
++pub const IFLA_MIN_MTU: _bindgen_ty_2 = _bindgen_ty_2::IFLA_MIN_MTU;
++pub const IFLA_MAX_MTU: _bindgen_ty_2 = _bindgen_ty_2::IFLA_MAX_MTU;
++pub const IFLA_PROP_LIST: _bindgen_ty_2 = _bindgen_ty_2::IFLA_PROP_LIST;
++pub const IFLA_ALT_IFNAME: _bindgen_ty_2 = _bindgen_ty_2::IFLA_ALT_IFNAME;
++pub const IFLA_PERM_ADDRESS: _bindgen_ty_2 = _bindgen_ty_2::IFLA_PERM_ADDRESS;
++pub const IFLA_PROTO_DOWN_REASON: _bindgen_ty_2 = _bindgen_ty_2::IFLA_PROTO_DOWN_REASON;
++pub const IFLA_PARENT_DEV_NAME: _bindgen_ty_2 = _bindgen_ty_2::IFLA_PARENT_DEV_NAME;
++pub const IFLA_PARENT_DEV_BUS_NAME: _bindgen_ty_2 = _bindgen_ty_2::IFLA_PARENT_DEV_BUS_NAME;
++pub const IFLA_GRO_MAX_SIZE: _bindgen_ty_2 = _bindgen_ty_2::IFLA_GRO_MAX_SIZE;
++pub const IFLA_TSO_MAX_SIZE: _bindgen_ty_2 = _bindgen_ty_2::IFLA_TSO_MAX_SIZE;
++pub const IFLA_TSO_MAX_SEGS: _bindgen_ty_2 = _bindgen_ty_2::IFLA_TSO_MAX_SEGS;
++pub const IFLA_ALLMULTI: _bindgen_ty_2 = _bindgen_ty_2::IFLA_ALLMULTI;
++pub const IFLA_DEVLINK_PORT: _bindgen_ty_2 = _bindgen_ty_2::IFLA_DEVLINK_PORT;
++pub const IFLA_GSO_IPV4_MAX_SIZE: _bindgen_ty_2 = _bindgen_ty_2::IFLA_GSO_IPV4_MAX_SIZE;
++pub const IFLA_GRO_IPV4_MAX_SIZE: _bindgen_ty_2 = _bindgen_ty_2::IFLA_GRO_IPV4_MAX_SIZE;
++pub const __IFLA_MAX: _bindgen_ty_2 = _bindgen_ty_2::__IFLA_MAX;
++pub const IFLA_PROTO_DOWN_REASON_UNSPEC: _bindgen_ty_3 = _bindgen_ty_3::IFLA_PROTO_DOWN_REASON_UNSPEC;
++pub const IFLA_PROTO_DOWN_REASON_MASK: _bindgen_ty_3 = _bindgen_ty_3::IFLA_PROTO_DOWN_REASON_MASK;
++pub const IFLA_PROTO_DOWN_REASON_VALUE: _bindgen_ty_3 = _bindgen_ty_3::IFLA_PROTO_DOWN_REASON_VALUE;
++pub const __IFLA_PROTO_DOWN_REASON_CNT: _bindgen_ty_3 = _bindgen_ty_3::__IFLA_PROTO_DOWN_REASON_CNT;
++pub const IFLA_PROTO_DOWN_REASON_MAX: _bindgen_ty_3 = _bindgen_ty_3::IFLA_PROTO_DOWN_REASON_VALUE;
++pub const IFLA_INET_UNSPEC: _bindgen_ty_4 = _bindgen_ty_4::IFLA_INET_UNSPEC;
++pub const IFLA_INET_CONF: _bindgen_ty_4 = _bindgen_ty_4::IFLA_INET_CONF;
++pub const __IFLA_INET_MAX: _bindgen_ty_4 = _bindgen_ty_4::__IFLA_INET_MAX;
++pub const IFLA_INET6_UNSPEC: _bindgen_ty_5 = _bindgen_ty_5::IFLA_INET6_UNSPEC;
++pub const IFLA_INET6_FLAGS: _bindgen_ty_5 = _bindgen_ty_5::IFLA_INET6_FLAGS;
++pub const IFLA_INET6_CONF: _bindgen_ty_5 = _bindgen_ty_5::IFLA_INET6_CONF;
++pub const IFLA_INET6_STATS: _bindgen_ty_5 = _bindgen_ty_5::IFLA_INET6_STATS;
++pub const IFLA_INET6_MCAST: _bindgen_ty_5 = _bindgen_ty_5::IFLA_INET6_MCAST;
++pub const IFLA_INET6_CACHEINFO: _bindgen_ty_5 = _bindgen_ty_5::IFLA_INET6_CACHEINFO;
++pub const IFLA_INET6_ICMP6STATS: _bindgen_ty_5 = _bindgen_ty_5::IFLA_INET6_ICMP6STATS;
++pub const IFLA_INET6_TOKEN: _bindgen_ty_5 = _bindgen_ty_5::IFLA_INET6_TOKEN;
++pub const IFLA_INET6_ADDR_GEN_MODE: _bindgen_ty_5 = _bindgen_ty_5::IFLA_INET6_ADDR_GEN_MODE;
++pub const IFLA_INET6_RA_MTU: _bindgen_ty_5 = _bindgen_ty_5::IFLA_INET6_RA_MTU;
++pub const __IFLA_INET6_MAX: _bindgen_ty_5 = _bindgen_ty_5::__IFLA_INET6_MAX;
++pub const IFLA_BR_UNSPEC: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_UNSPEC;
++pub const IFLA_BR_FORWARD_DELAY: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FORWARD_DELAY;
++pub const IFLA_BR_HELLO_TIME: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_HELLO_TIME;
++pub const IFLA_BR_MAX_AGE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MAX_AGE;
++pub const IFLA_BR_AGEING_TIME: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_AGEING_TIME;
++pub const IFLA_BR_STP_STATE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_STP_STATE;
++pub const IFLA_BR_PRIORITY: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_PRIORITY;
++pub const IFLA_BR_VLAN_FILTERING: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_FILTERING;
++pub const IFLA_BR_VLAN_PROTOCOL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_PROTOCOL;
++pub const IFLA_BR_GROUP_FWD_MASK: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_GROUP_FWD_MASK;
++pub const IFLA_BR_ROOT_ID: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_ROOT_ID;
++pub const IFLA_BR_BRIDGE_ID: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_BRIDGE_ID;
++pub const IFLA_BR_ROOT_PORT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_ROOT_PORT;
++pub const IFLA_BR_ROOT_PATH_COST: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_ROOT_PATH_COST;
++pub const IFLA_BR_TOPOLOGY_CHANGE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TOPOLOGY_CHANGE;
++pub const IFLA_BR_TOPOLOGY_CHANGE_DETECTED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TOPOLOGY_CHANGE_DETECTED;
++pub const IFLA_BR_HELLO_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_HELLO_TIMER;
++pub const IFLA_BR_TCN_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TCN_TIMER;
++pub const IFLA_BR_TOPOLOGY_CHANGE_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TOPOLOGY_CHANGE_TIMER;
++pub const IFLA_BR_GC_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_GC_TIMER;
++pub const IFLA_BR_GROUP_ADDR: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_GROUP_ADDR;
++pub const IFLA_BR_FDB_FLUSH: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FDB_FLUSH;
++pub const IFLA_BR_MCAST_ROUTER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_ROUTER;
++pub const IFLA_BR_MCAST_SNOOPING: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_SNOOPING;
++pub const IFLA_BR_MCAST_QUERY_USE_IFADDR: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERY_USE_IFADDR;
++pub const IFLA_BR_MCAST_QUERIER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERIER;
++pub const IFLA_BR_MCAST_HASH_ELASTICITY: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_HASH_ELASTICITY;
++pub const IFLA_BR_MCAST_HASH_MAX: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_HASH_MAX;
++pub const IFLA_BR_MCAST_LAST_MEMBER_CNT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_LAST_MEMBER_CNT;
++pub const IFLA_BR_MCAST_STARTUP_QUERY_CNT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_STARTUP_QUERY_CNT;
++pub const IFLA_BR_MCAST_LAST_MEMBER_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_LAST_MEMBER_INTVL;
++pub const IFLA_BR_MCAST_MEMBERSHIP_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_MEMBERSHIP_INTVL;
++pub const IFLA_BR_MCAST_QUERIER_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERIER_INTVL;
++pub const IFLA_BR_MCAST_QUERY_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERY_INTVL;
++pub const IFLA_BR_MCAST_QUERY_RESPONSE_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERY_RESPONSE_INTVL;
++pub const IFLA_BR_MCAST_STARTUP_QUERY_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_STARTUP_QUERY_INTVL;
++pub const IFLA_BR_NF_CALL_IPTABLES: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_NF_CALL_IPTABLES;
++pub const IFLA_BR_NF_CALL_IP6TABLES: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_NF_CALL_IP6TABLES;
++pub const IFLA_BR_NF_CALL_ARPTABLES: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_NF_CALL_ARPTABLES;
++pub const IFLA_BR_VLAN_DEFAULT_PVID: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_DEFAULT_PVID;
++pub const IFLA_BR_PAD: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_PAD;
++pub const IFLA_BR_VLAN_STATS_ENABLED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_STATS_ENABLED;
++pub const IFLA_BR_MCAST_STATS_ENABLED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_STATS_ENABLED;
++pub const IFLA_BR_MCAST_IGMP_VERSION: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_IGMP_VERSION;
++pub const IFLA_BR_MCAST_MLD_VERSION: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_MLD_VERSION;
++pub const IFLA_BR_VLAN_STATS_PER_PORT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_STATS_PER_PORT;
++pub const IFLA_BR_MULTI_BOOLOPT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MULTI_BOOLOPT;
++pub const IFLA_BR_MCAST_QUERIER_STATE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERIER_STATE;
++pub const __IFLA_BR_MAX: _bindgen_ty_6 = _bindgen_ty_6::__IFLA_BR_MAX;
++pub const BRIDGE_MODE_UNSPEC: _bindgen_ty_7 = _bindgen_ty_7::BRIDGE_MODE_UNSPEC;
++pub const BRIDGE_MODE_HAIRPIN: _bindgen_ty_7 = _bindgen_ty_7::BRIDGE_MODE_HAIRPIN;
++pub const IFLA_BRPORT_UNSPEC: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_UNSPEC;
++pub const IFLA_BRPORT_STATE: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_STATE;
++pub const IFLA_BRPORT_PRIORITY: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_PRIORITY;
++pub const IFLA_BRPORT_COST: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_COST;
++pub const IFLA_BRPORT_MODE: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_MODE;
++pub const IFLA_BRPORT_GUARD: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_GUARD;
++pub const IFLA_BRPORT_PROTECT: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_PROTECT;
++pub const IFLA_BRPORT_FAST_LEAVE: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_FAST_LEAVE;
++pub const IFLA_BRPORT_LEARNING: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_LEARNING;
++pub const IFLA_BRPORT_UNICAST_FLOOD: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_UNICAST_FLOOD;
++pub const IFLA_BRPORT_PROXYARP: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_PROXYARP;
++pub const IFLA_BRPORT_LEARNING_SYNC: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_LEARNING_SYNC;
++pub const IFLA_BRPORT_PROXYARP_WIFI: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_PROXYARP_WIFI;
++pub const IFLA_BRPORT_ROOT_ID: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_ROOT_ID;
++pub const IFLA_BRPORT_BRIDGE_ID: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_BRIDGE_ID;
++pub const IFLA_BRPORT_DESIGNATED_PORT: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_DESIGNATED_PORT;
++pub const IFLA_BRPORT_DESIGNATED_COST: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_DESIGNATED_COST;
++pub const IFLA_BRPORT_ID: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_ID;
++pub const IFLA_BRPORT_NO: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_NO;
++pub const IFLA_BRPORT_TOPOLOGY_CHANGE_ACK: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_TOPOLOGY_CHANGE_ACK;
++pub const IFLA_BRPORT_CONFIG_PENDING: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_CONFIG_PENDING;
++pub const IFLA_BRPORT_MESSAGE_AGE_TIMER: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_MESSAGE_AGE_TIMER;
++pub const IFLA_BRPORT_FORWARD_DELAY_TIMER: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_FORWARD_DELAY_TIMER;
++pub const IFLA_BRPORT_HOLD_TIMER: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_HOLD_TIMER;
++pub const IFLA_BRPORT_FLUSH: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_FLUSH;
++pub const IFLA_BRPORT_MULTICAST_ROUTER: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_MULTICAST_ROUTER;
++pub const IFLA_BRPORT_PAD: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_PAD;
++pub const IFLA_BRPORT_MCAST_FLOOD: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_MCAST_FLOOD;
++pub const IFLA_BRPORT_MCAST_TO_UCAST: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_MCAST_TO_UCAST;
++pub const IFLA_BRPORT_VLAN_TUNNEL: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_VLAN_TUNNEL;
++pub const IFLA_BRPORT_BCAST_FLOOD: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_BCAST_FLOOD;
++pub const IFLA_BRPORT_GROUP_FWD_MASK: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_GROUP_FWD_MASK;
++pub const IFLA_BRPORT_NEIGH_SUPPRESS: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_NEIGH_SUPPRESS;
++pub const IFLA_BRPORT_ISOLATED: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_ISOLATED;
++pub const IFLA_BRPORT_BACKUP_PORT: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_BACKUP_PORT;
++pub const IFLA_BRPORT_MRP_RING_OPEN: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_MRP_RING_OPEN;
++pub const IFLA_BRPORT_MRP_IN_OPEN: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_MRP_IN_OPEN;
++pub const IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT;
++pub const IFLA_BRPORT_MCAST_EHT_HOSTS_CNT: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_MCAST_EHT_HOSTS_CNT;
++pub const IFLA_BRPORT_LOCKED: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_LOCKED;
++pub const IFLA_BRPORT_MAB: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_MAB;
++pub const IFLA_BRPORT_MCAST_N_GROUPS: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_MCAST_N_GROUPS;
++pub const IFLA_BRPORT_MCAST_MAX_GROUPS: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_MCAST_MAX_GROUPS;
++pub const __IFLA_BRPORT_MAX: _bindgen_ty_8 = _bindgen_ty_8::__IFLA_BRPORT_MAX;
++pub const IFLA_INFO_UNSPEC: _bindgen_ty_9 = _bindgen_ty_9::IFLA_INFO_UNSPEC;
++pub const IFLA_INFO_KIND: _bindgen_ty_9 = _bindgen_ty_9::IFLA_INFO_KIND;
++pub const IFLA_INFO_DATA: _bindgen_ty_9 = _bindgen_ty_9::IFLA_INFO_DATA;
++pub const IFLA_INFO_XSTATS: _bindgen_ty_9 = _bindgen_ty_9::IFLA_INFO_XSTATS;
++pub const IFLA_INFO_SLAVE_KIND: _bindgen_ty_9 = _bindgen_ty_9::IFLA_INFO_SLAVE_KIND;
++pub const IFLA_INFO_SLAVE_DATA: _bindgen_ty_9 = _bindgen_ty_9::IFLA_INFO_SLAVE_DATA;
++pub const __IFLA_INFO_MAX: _bindgen_ty_9 = _bindgen_ty_9::__IFLA_INFO_MAX;
++pub const IFLA_VLAN_UNSPEC: _bindgen_ty_10 = _bindgen_ty_10::IFLA_VLAN_UNSPEC;
++pub const IFLA_VLAN_ID: _bindgen_ty_10 = _bindgen_ty_10::IFLA_VLAN_ID;
++pub const IFLA_VLAN_FLAGS: _bindgen_ty_10 = _bindgen_ty_10::IFLA_VLAN_FLAGS;
++pub const IFLA_VLAN_EGRESS_QOS: _bindgen_ty_10 = _bindgen_ty_10::IFLA_VLAN_EGRESS_QOS;
++pub const IFLA_VLAN_INGRESS_QOS: _bindgen_ty_10 = _bindgen_ty_10::IFLA_VLAN_INGRESS_QOS;
++pub const IFLA_VLAN_PROTOCOL: _bindgen_ty_10 = _bindgen_ty_10::IFLA_VLAN_PROTOCOL;
++pub const __IFLA_VLAN_MAX: _bindgen_ty_10 = _bindgen_ty_10::__IFLA_VLAN_MAX;
++pub const IFLA_VLAN_QOS_UNSPEC: _bindgen_ty_11 = _bindgen_ty_11::IFLA_VLAN_QOS_UNSPEC;
++pub const IFLA_VLAN_QOS_MAPPING: _bindgen_ty_11 = _bindgen_ty_11::IFLA_VLAN_QOS_MAPPING;
++pub const __IFLA_VLAN_QOS_MAX: _bindgen_ty_11 = _bindgen_ty_11::__IFLA_VLAN_QOS_MAX;
++pub const IFLA_MACVLAN_UNSPEC: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_UNSPEC;
++pub const IFLA_MACVLAN_MODE: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MODE;
++pub const IFLA_MACVLAN_FLAGS: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_FLAGS;
++pub const IFLA_MACVLAN_MACADDR_MODE: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR_MODE;
++pub const IFLA_MACVLAN_MACADDR: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR;
++pub const IFLA_MACVLAN_MACADDR_DATA: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR_DATA;
++pub const IFLA_MACVLAN_MACADDR_COUNT: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR_COUNT;
++pub const IFLA_MACVLAN_BC_QUEUE_LEN: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_BC_QUEUE_LEN;
++pub const IFLA_MACVLAN_BC_QUEUE_LEN_USED: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_BC_QUEUE_LEN_USED;
++pub const __IFLA_MACVLAN_MAX: _bindgen_ty_12 = _bindgen_ty_12::__IFLA_MACVLAN_MAX;
++pub const IFLA_VRF_UNSPEC: _bindgen_ty_13 = _bindgen_ty_13::IFLA_VRF_UNSPEC;
++pub const IFLA_VRF_TABLE: _bindgen_ty_13 = _bindgen_ty_13::IFLA_VRF_TABLE;
++pub const __IFLA_VRF_MAX: _bindgen_ty_13 = _bindgen_ty_13::__IFLA_VRF_MAX;
++pub const IFLA_VRF_PORT_UNSPEC: _bindgen_ty_14 = _bindgen_ty_14::IFLA_VRF_PORT_UNSPEC;
++pub const IFLA_VRF_PORT_TABLE: _bindgen_ty_14 = _bindgen_ty_14::IFLA_VRF_PORT_TABLE;
++pub const __IFLA_VRF_PORT_MAX: _bindgen_ty_14 = _bindgen_ty_14::__IFLA_VRF_PORT_MAX;
++pub const IFLA_MACSEC_UNSPEC: _bindgen_ty_15 = _bindgen_ty_15::IFLA_MACSEC_UNSPEC;
++pub const IFLA_MACSEC_SCI: _bindgen_ty_15 = _bindgen_ty_15::IFLA_MACSEC_SCI;
++pub const IFLA_MACSEC_PORT: _bindgen_ty_15 = _bindgen_ty_15::IFLA_MACSEC_PORT;
++pub const IFLA_MACSEC_ICV_LEN: _bindgen_ty_15 = _bindgen_ty_15::IFLA_MACSEC_ICV_LEN;
++pub const IFLA_MACSEC_CIPHER_SUITE: _bindgen_ty_15 = _bindgen_ty_15::IFLA_MACSEC_CIPHER_SUITE;
++pub const IFLA_MACSEC_WINDOW: _bindgen_ty_15 = _bindgen_ty_15::IFLA_MACSEC_WINDOW;
++pub const IFLA_MACSEC_ENCODING_SA: _bindgen_ty_15 = _bindgen_ty_15::IFLA_MACSEC_ENCODING_SA;
++pub const IFLA_MACSEC_ENCRYPT: _bindgen_ty_15 = _bindgen_ty_15::IFLA_MACSEC_ENCRYPT;
++pub const IFLA_MACSEC_PROTECT: _bindgen_ty_15 = _bindgen_ty_15::IFLA_MACSEC_PROTECT;
++pub const IFLA_MACSEC_INC_SCI: _bindgen_ty_15 = _bindgen_ty_15::IFLA_MACSEC_INC_SCI;
++pub const IFLA_MACSEC_ES: _bindgen_ty_15 = _bindgen_ty_15::IFLA_MACSEC_ES;
++pub const IFLA_MACSEC_SCB: _bindgen_ty_15 = _bindgen_ty_15::IFLA_MACSEC_SCB;
++pub const IFLA_MACSEC_REPLAY_PROTECT: _bindgen_ty_15 = _bindgen_ty_15::IFLA_MACSEC_REPLAY_PROTECT;
++pub const IFLA_MACSEC_VALIDATION: _bindgen_ty_15 = _bindgen_ty_15::IFLA_MACSEC_VALIDATION;
++pub const IFLA_MACSEC_PAD: _bindgen_ty_15 = _bindgen_ty_15::IFLA_MACSEC_PAD;
++pub const IFLA_MACSEC_OFFLOAD: _bindgen_ty_15 = _bindgen_ty_15::IFLA_MACSEC_OFFLOAD;
++pub const __IFLA_MACSEC_MAX: _bindgen_ty_15 = _bindgen_ty_15::__IFLA_MACSEC_MAX;
++pub const IFLA_XFRM_UNSPEC: _bindgen_ty_16 = _bindgen_ty_16::IFLA_XFRM_UNSPEC;
++pub const IFLA_XFRM_LINK: _bindgen_ty_16 = _bindgen_ty_16::IFLA_XFRM_LINK;
++pub const IFLA_XFRM_IF_ID: _bindgen_ty_16 = _bindgen_ty_16::IFLA_XFRM_IF_ID;
++pub const IFLA_XFRM_COLLECT_METADATA: _bindgen_ty_16 = _bindgen_ty_16::IFLA_XFRM_COLLECT_METADATA;
++pub const __IFLA_XFRM_MAX: _bindgen_ty_16 = _bindgen_ty_16::__IFLA_XFRM_MAX;
++pub const IFLA_IPVLAN_UNSPEC: _bindgen_ty_17 = _bindgen_ty_17::IFLA_IPVLAN_UNSPEC;
++pub const IFLA_IPVLAN_MODE: _bindgen_ty_17 = _bindgen_ty_17::IFLA_IPVLAN_MODE;
++pub const IFLA_IPVLAN_FLAGS: _bindgen_ty_17 = _bindgen_ty_17::IFLA_IPVLAN_FLAGS;
++pub const __IFLA_IPVLAN_MAX: _bindgen_ty_17 = _bindgen_ty_17::__IFLA_IPVLAN_MAX;
++pub const VNIFILTER_ENTRY_STATS_UNSPEC: _bindgen_ty_18 = _bindgen_ty_18::VNIFILTER_ENTRY_STATS_UNSPEC;
++pub const VNIFILTER_ENTRY_STATS_RX_BYTES: _bindgen_ty_18 = _bindgen_ty_18::VNIFILTER_ENTRY_STATS_RX_BYTES;
++pub const VNIFILTER_ENTRY_STATS_RX_PKTS: _bindgen_ty_18 = _bindgen_ty_18::VNIFILTER_ENTRY_STATS_RX_PKTS;
++pub const VNIFILTER_ENTRY_STATS_RX_DROPS: _bindgen_ty_18 = _bindgen_ty_18::VNIFILTER_ENTRY_STATS_RX_DROPS;
++pub const VNIFILTER_ENTRY_STATS_RX_ERRORS: _bindgen_ty_18 = _bindgen_ty_18::VNIFILTER_ENTRY_STATS_RX_ERRORS;
++pub const VNIFILTER_ENTRY_STATS_TX_BYTES: _bindgen_ty_18 = _bindgen_ty_18::VNIFILTER_ENTRY_STATS_TX_BYTES;
++pub const VNIFILTER_ENTRY_STATS_TX_PKTS: _bindgen_ty_18 = _bindgen_ty_18::VNIFILTER_ENTRY_STATS_TX_PKTS;
++pub const VNIFILTER_ENTRY_STATS_TX_DROPS: _bindgen_ty_18 = _bindgen_ty_18::VNIFILTER_ENTRY_STATS_TX_DROPS;
++pub const VNIFILTER_ENTRY_STATS_TX_ERRORS: _bindgen_ty_18 = _bindgen_ty_18::VNIFILTER_ENTRY_STATS_TX_ERRORS;
++pub const VNIFILTER_ENTRY_STATS_PAD: _bindgen_ty_18 = _bindgen_ty_18::VNIFILTER_ENTRY_STATS_PAD;
++pub const __VNIFILTER_ENTRY_STATS_MAX: _bindgen_ty_18 = _bindgen_ty_18::__VNIFILTER_ENTRY_STATS_MAX;
++pub const VXLAN_VNIFILTER_ENTRY_UNSPEC: _bindgen_ty_19 = _bindgen_ty_19::VXLAN_VNIFILTER_ENTRY_UNSPEC;
++pub const VXLAN_VNIFILTER_ENTRY_START: _bindgen_ty_19 = _bindgen_ty_19::VXLAN_VNIFILTER_ENTRY_START;
++pub const VXLAN_VNIFILTER_ENTRY_END: _bindgen_ty_19 = _bindgen_ty_19::VXLAN_VNIFILTER_ENTRY_END;
++pub const VXLAN_VNIFILTER_ENTRY_GROUP: _bindgen_ty_19 = _bindgen_ty_19::VXLAN_VNIFILTER_ENTRY_GROUP;
++pub const VXLAN_VNIFILTER_ENTRY_GROUP6: _bindgen_ty_19 = _bindgen_ty_19::VXLAN_VNIFILTER_ENTRY_GROUP6;
++pub const VXLAN_VNIFILTER_ENTRY_STATS: _bindgen_ty_19 = _bindgen_ty_19::VXLAN_VNIFILTER_ENTRY_STATS;
++pub const __VXLAN_VNIFILTER_ENTRY_MAX: _bindgen_ty_19 = _bindgen_ty_19::__VXLAN_VNIFILTER_ENTRY_MAX;
++pub const VXLAN_VNIFILTER_UNSPEC: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_UNSPEC;
++pub const VXLAN_VNIFILTER_ENTRY: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY;
++pub const __VXLAN_VNIFILTER_MAX: _bindgen_ty_20 = _bindgen_ty_20::__VXLAN_VNIFILTER_MAX;
++pub const IFLA_VXLAN_UNSPEC: _bindgen_ty_21 = _bindgen_ty_21::IFLA_VXLAN_UNSPEC;
++pub const IFLA_VXLAN_ID: _bindgen_ty_21 = _bindgen_ty_21::IFLA_VXLAN_ID;
++pub const IFLA_VXLAN_GROUP: _bindgen_ty_21 = _bindgen_ty_21::IFLA_VXLAN_GROUP;
++pub const IFLA_VXLAN_LINK: _bindgen_ty_21 = _bindgen_ty_21::IFLA_VXLAN_LINK;
++pub const IFLA_VXLAN_LOCAL: _bindgen_ty_21 = _bindgen_ty_21::IFLA_VXLAN_LOCAL;
++pub const IFLA_VXLAN_TTL: _bindgen_ty_21 = _bindgen_ty_21::IFLA_VXLAN_TTL;
++pub const IFLA_VXLAN_TOS: _bindgen_ty_21 = _bindgen_ty_21::IFLA_VXLAN_TOS;
++pub const IFLA_VXLAN_LEARNING: _bindgen_ty_21 = _bindgen_ty_21::IFLA_VXLAN_LEARNING;
++pub const IFLA_VXLAN_AGEING: _bindgen_ty_21 = _bindgen_ty_21::IFLA_VXLAN_AGEING;
++pub const IFLA_VXLAN_LIMIT: _bindgen_ty_21 = _bindgen_ty_21::IFLA_VXLAN_LIMIT;
++pub const IFLA_VXLAN_PORT_RANGE: _bindgen_ty_21 = _bindgen_ty_21::IFLA_VXLAN_PORT_RANGE;
++pub const IFLA_VXLAN_PROXY: _bindgen_ty_21 = _bindgen_ty_21::IFLA_VXLAN_PROXY;
++pub const IFLA_VXLAN_RSC: _bindgen_ty_21 = _bindgen_ty_21::IFLA_VXLAN_RSC;
++pub const IFLA_VXLAN_L2MISS: _bindgen_ty_21 = _bindgen_ty_21::IFLA_VXLAN_L2MISS;
++pub const IFLA_VXLAN_L3MISS: _bindgen_ty_21 = _bindgen_ty_21::IFLA_VXLAN_L3MISS;
++pub const IFLA_VXLAN_PORT: _bindgen_ty_21 = _bindgen_ty_21::IFLA_VXLAN_PORT;
++pub const IFLA_VXLAN_GROUP6: _bindgen_ty_21 = _bindgen_ty_21::IFLA_VXLAN_GROUP6;
++pub const IFLA_VXLAN_LOCAL6: _bindgen_ty_21 = _bindgen_ty_21::IFLA_VXLAN_LOCAL6;
++pub const IFLA_VXLAN_UDP_CSUM: _bindgen_ty_21 = _bindgen_ty_21::IFLA_VXLAN_UDP_CSUM;
++pub const IFLA_VXLAN_UDP_ZERO_CSUM6_TX: _bindgen_ty_21 = _bindgen_ty_21::IFLA_VXLAN_UDP_ZERO_CSUM6_TX;
++pub const IFLA_VXLAN_UDP_ZERO_CSUM6_RX: _bindgen_ty_21 = _bindgen_ty_21::IFLA_VXLAN_UDP_ZERO_CSUM6_RX;
++pub const IFLA_VXLAN_REMCSUM_TX: _bindgen_ty_21 = _bindgen_ty_21::IFLA_VXLAN_REMCSUM_TX;
++pub const IFLA_VXLAN_REMCSUM_RX: _bindgen_ty_21 = _bindgen_ty_21::IFLA_VXLAN_REMCSUM_RX;
++pub const IFLA_VXLAN_GBP: _bindgen_ty_21 = _bindgen_ty_21::IFLA_VXLAN_GBP;
++pub const IFLA_VXLAN_REMCSUM_NOPARTIAL: _bindgen_ty_21 = _bindgen_ty_21::IFLA_VXLAN_REMCSUM_NOPARTIAL;
++pub const IFLA_VXLAN_COLLECT_METADATA: _bindgen_ty_21 = _bindgen_ty_21::IFLA_VXLAN_COLLECT_METADATA;
++pub const IFLA_VXLAN_LABEL: _bindgen_ty_21 = _bindgen_ty_21::IFLA_VXLAN_LABEL;
++pub const IFLA_VXLAN_GPE: _bindgen_ty_21 = _bindgen_ty_21::IFLA_VXLAN_GPE;
++pub const IFLA_VXLAN_TTL_INHERIT: _bindgen_ty_21 = _bindgen_ty_21::IFLA_VXLAN_TTL_INHERIT;
++pub const IFLA_VXLAN_DF: _bindgen_ty_21 = _bindgen_ty_21::IFLA_VXLAN_DF;
++pub const IFLA_VXLAN_VNIFILTER: _bindgen_ty_21 = _bindgen_ty_21::IFLA_VXLAN_VNIFILTER;
++pub const __IFLA_VXLAN_MAX: _bindgen_ty_21 = _bindgen_ty_21::__IFLA_VXLAN_MAX;
++pub const IFLA_GENEVE_UNSPEC: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GENEVE_UNSPEC;
++pub const IFLA_GENEVE_ID: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GENEVE_ID;
++pub const IFLA_GENEVE_REMOTE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GENEVE_REMOTE;
++pub const IFLA_GENEVE_TTL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GENEVE_TTL;
++pub const IFLA_GENEVE_TOS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GENEVE_TOS;
++pub const IFLA_GENEVE_PORT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GENEVE_PORT;
++pub const IFLA_GENEVE_COLLECT_METADATA: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GENEVE_COLLECT_METADATA;
++pub const IFLA_GENEVE_REMOTE6: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GENEVE_REMOTE6;
++pub const IFLA_GENEVE_UDP_CSUM: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GENEVE_UDP_CSUM;
++pub const IFLA_GENEVE_UDP_ZERO_CSUM6_TX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GENEVE_UDP_ZERO_CSUM6_TX;
++pub const IFLA_GENEVE_UDP_ZERO_CSUM6_RX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GENEVE_UDP_ZERO_CSUM6_RX;
++pub const IFLA_GENEVE_LABEL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GENEVE_LABEL;
++pub const IFLA_GENEVE_TTL_INHERIT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GENEVE_TTL_INHERIT;
++pub const IFLA_GENEVE_DF: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GENEVE_DF;
++pub const IFLA_GENEVE_INNER_PROTO_INHERIT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GENEVE_INNER_PROTO_INHERIT;
++pub const __IFLA_GENEVE_MAX: _bindgen_ty_22 = _bindgen_ty_22::__IFLA_GENEVE_MAX;
++pub const IFLA_BAREUDP_UNSPEC: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BAREUDP_UNSPEC;
++pub const IFLA_BAREUDP_PORT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BAREUDP_PORT;
++pub const IFLA_BAREUDP_ETHERTYPE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BAREUDP_ETHERTYPE;
++pub const IFLA_BAREUDP_SRCPORT_MIN: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BAREUDP_SRCPORT_MIN;
++pub const IFLA_BAREUDP_MULTIPROTO_MODE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BAREUDP_MULTIPROTO_MODE;
++pub const __IFLA_BAREUDP_MAX: _bindgen_ty_23 = _bindgen_ty_23::__IFLA_BAREUDP_MAX;
++pub const IFLA_PPP_UNSPEC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_PPP_UNSPEC;
++pub const IFLA_PPP_DEV_FD: _bindgen_ty_24 = _bindgen_ty_24::IFLA_PPP_DEV_FD;
++pub const __IFLA_PPP_MAX: _bindgen_ty_24 = _bindgen_ty_24::__IFLA_PPP_MAX;
++pub const IFLA_GTP_UNSPEC: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GTP_UNSPEC;
++pub const IFLA_GTP_FD0: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GTP_FD0;
++pub const IFLA_GTP_FD1: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GTP_FD1;
++pub const IFLA_GTP_PDP_HASHSIZE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GTP_PDP_HASHSIZE;
++pub const IFLA_GTP_ROLE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GTP_ROLE;
++pub const IFLA_GTP_CREATE_SOCKETS: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GTP_CREATE_SOCKETS;
++pub const IFLA_GTP_RESTART_COUNT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GTP_RESTART_COUNT;
++pub const __IFLA_GTP_MAX: _bindgen_ty_25 = _bindgen_ty_25::__IFLA_GTP_MAX;
++pub const IFLA_BOND_UNSPEC: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BOND_UNSPEC;
++pub const IFLA_BOND_MODE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BOND_MODE;
++pub const IFLA_BOND_ACTIVE_SLAVE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BOND_ACTIVE_SLAVE;
++pub const IFLA_BOND_MIIMON: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BOND_MIIMON;
++pub const IFLA_BOND_UPDELAY: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BOND_UPDELAY;
++pub const IFLA_BOND_DOWNDELAY: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BOND_DOWNDELAY;
++pub const IFLA_BOND_USE_CARRIER: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BOND_USE_CARRIER;
++pub const IFLA_BOND_ARP_INTERVAL: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BOND_ARP_INTERVAL;
++pub const IFLA_BOND_ARP_IP_TARGET: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BOND_ARP_IP_TARGET;
++pub const IFLA_BOND_ARP_VALIDATE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BOND_ARP_VALIDATE;
++pub const IFLA_BOND_ARP_ALL_TARGETS: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BOND_ARP_ALL_TARGETS;
++pub const IFLA_BOND_PRIMARY: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BOND_PRIMARY;
++pub const IFLA_BOND_PRIMARY_RESELECT: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BOND_PRIMARY_RESELECT;
++pub const IFLA_BOND_FAIL_OVER_MAC: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BOND_FAIL_OVER_MAC;
++pub const IFLA_BOND_XMIT_HASH_POLICY: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BOND_XMIT_HASH_POLICY;
++pub const IFLA_BOND_RESEND_IGMP: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BOND_RESEND_IGMP;
++pub const IFLA_BOND_NUM_PEER_NOTIF: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BOND_NUM_PEER_NOTIF;
++pub const IFLA_BOND_ALL_SLAVES_ACTIVE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BOND_ALL_SLAVES_ACTIVE;
++pub const IFLA_BOND_MIN_LINKS: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BOND_MIN_LINKS;
++pub const IFLA_BOND_LP_INTERVAL: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BOND_LP_INTERVAL;
++pub const IFLA_BOND_PACKETS_PER_SLAVE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BOND_PACKETS_PER_SLAVE;
++pub const IFLA_BOND_AD_LACP_RATE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BOND_AD_LACP_RATE;
++pub const IFLA_BOND_AD_SELECT: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BOND_AD_SELECT;
++pub const IFLA_BOND_AD_INFO: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BOND_AD_INFO;
++pub const IFLA_BOND_AD_ACTOR_SYS_PRIO: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BOND_AD_ACTOR_SYS_PRIO;
++pub const IFLA_BOND_AD_USER_PORT_KEY: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BOND_AD_USER_PORT_KEY;
++pub const IFLA_BOND_AD_ACTOR_SYSTEM: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BOND_AD_ACTOR_SYSTEM;
++pub const IFLA_BOND_TLB_DYNAMIC_LB: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BOND_TLB_DYNAMIC_LB;
++pub const IFLA_BOND_PEER_NOTIF_DELAY: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BOND_PEER_NOTIF_DELAY;
++pub const IFLA_BOND_AD_LACP_ACTIVE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BOND_AD_LACP_ACTIVE;
++pub const IFLA_BOND_MISSED_MAX: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BOND_MISSED_MAX;
++pub const IFLA_BOND_NS_IP6_TARGET: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BOND_NS_IP6_TARGET;
++pub const __IFLA_BOND_MAX: _bindgen_ty_26 = _bindgen_ty_26::__IFLA_BOND_MAX;
++pub const IFLA_BOND_AD_INFO_UNSPEC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_INFO_UNSPEC;
++pub const IFLA_BOND_AD_INFO_AGGREGATOR: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_INFO_AGGREGATOR;
++pub const IFLA_BOND_AD_INFO_NUM_PORTS: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_INFO_NUM_PORTS;
++pub const IFLA_BOND_AD_INFO_ACTOR_KEY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_INFO_ACTOR_KEY;
++pub const IFLA_BOND_AD_INFO_PARTNER_KEY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_INFO_PARTNER_KEY;
++pub const IFLA_BOND_AD_INFO_PARTNER_MAC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_INFO_PARTNER_MAC;
++pub const __IFLA_BOND_AD_INFO_MAX: _bindgen_ty_27 = _bindgen_ty_27::__IFLA_BOND_AD_INFO_MAX;
++pub const IFLA_BOND_SLAVE_UNSPEC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_SLAVE_UNSPEC;
++pub const IFLA_BOND_SLAVE_STATE: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_SLAVE_STATE;
++pub const IFLA_BOND_SLAVE_MII_STATUS: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_SLAVE_MII_STATUS;
++pub const IFLA_BOND_SLAVE_LINK_FAILURE_COUNT: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_SLAVE_LINK_FAILURE_COUNT;
++pub const IFLA_BOND_SLAVE_PERM_HWADDR: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_SLAVE_PERM_HWADDR;
++pub const IFLA_BOND_SLAVE_QUEUE_ID: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_SLAVE_QUEUE_ID;
++pub const IFLA_BOND_SLAVE_AD_AGGREGATOR_ID: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_SLAVE_AD_AGGREGATOR_ID;
++pub const IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE;
++pub const IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE;
++pub const IFLA_BOND_SLAVE_PRIO: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_SLAVE_PRIO;
++pub const __IFLA_BOND_SLAVE_MAX: _bindgen_ty_28 = _bindgen_ty_28::__IFLA_BOND_SLAVE_MAX;
++pub const IFLA_VF_INFO_UNSPEC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_VF_INFO_UNSPEC;
++pub const IFLA_VF_INFO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_VF_INFO;
++pub const __IFLA_VF_INFO_MAX: _bindgen_ty_29 = _bindgen_ty_29::__IFLA_VF_INFO_MAX;
++pub const IFLA_VF_UNSPEC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_UNSPEC;
++pub const IFLA_VF_MAC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_MAC;
++pub const IFLA_VF_VLAN: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_VLAN;
++pub const IFLA_VF_TX_RATE: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_TX_RATE;
++pub const IFLA_VF_SPOOFCHK: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_SPOOFCHK;
++pub const IFLA_VF_LINK_STATE: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_LINK_STATE;
++pub const IFLA_VF_RATE: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_RATE;
++pub const IFLA_VF_RSS_QUERY_EN: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_RSS_QUERY_EN;
++pub const IFLA_VF_STATS: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS;
++pub const IFLA_VF_TRUST: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_TRUST;
++pub const IFLA_VF_IB_NODE_GUID: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_IB_NODE_GUID;
++pub const IFLA_VF_IB_PORT_GUID: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_IB_PORT_GUID;
++pub const IFLA_VF_VLAN_LIST: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_VLAN_LIST;
++pub const IFLA_VF_BROADCAST: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_BROADCAST;
++pub const __IFLA_VF_MAX: _bindgen_ty_30 = _bindgen_ty_30::__IFLA_VF_MAX;
++pub const IFLA_VF_VLAN_INFO_UNSPEC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_VLAN_INFO_UNSPEC;
++pub const IFLA_VF_VLAN_INFO: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_VLAN_INFO;
++pub const __IFLA_VF_VLAN_INFO_MAX: _bindgen_ty_31 = _bindgen_ty_31::__IFLA_VF_VLAN_INFO_MAX;
++pub const IFLA_VF_LINK_STATE_AUTO: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_LINK_STATE_AUTO;
++pub const IFLA_VF_LINK_STATE_ENABLE: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_LINK_STATE_ENABLE;
++pub const IFLA_VF_LINK_STATE_DISABLE: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_LINK_STATE_DISABLE;
++pub const __IFLA_VF_LINK_STATE_MAX: _bindgen_ty_32 = _bindgen_ty_32::__IFLA_VF_LINK_STATE_MAX;
++pub const IFLA_VF_STATS_RX_PACKETS: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_STATS_RX_PACKETS;
++pub const IFLA_VF_STATS_TX_PACKETS: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_STATS_TX_PACKETS;
++pub const IFLA_VF_STATS_RX_BYTES: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_STATS_RX_BYTES;
++pub const IFLA_VF_STATS_TX_BYTES: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_STATS_TX_BYTES;
++pub const IFLA_VF_STATS_BROADCAST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_STATS_BROADCAST;
++pub const IFLA_VF_STATS_MULTICAST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_STATS_MULTICAST;
++pub const IFLA_VF_STATS_PAD: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_STATS_PAD;
++pub const IFLA_VF_STATS_RX_DROPPED: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_STATS_RX_DROPPED;
++pub const IFLA_VF_STATS_TX_DROPPED: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_STATS_TX_DROPPED;
++pub const __IFLA_VF_STATS_MAX: _bindgen_ty_33 = _bindgen_ty_33::__IFLA_VF_STATS_MAX;
++pub const IFLA_VF_PORT_UNSPEC: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_PORT_UNSPEC;
++pub const IFLA_VF_PORT: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_PORT;
++pub const __IFLA_VF_PORT_MAX: _bindgen_ty_34 = _bindgen_ty_34::__IFLA_VF_PORT_MAX;
++pub const IFLA_PORT_UNSPEC: _bindgen_ty_35 = _bindgen_ty_35::IFLA_PORT_UNSPEC;
++pub const IFLA_PORT_VF: _bindgen_ty_35 = _bindgen_ty_35::IFLA_PORT_VF;
++pub const IFLA_PORT_PROFILE: _bindgen_ty_35 = _bindgen_ty_35::IFLA_PORT_PROFILE;
++pub const IFLA_PORT_VSI_TYPE: _bindgen_ty_35 = _bindgen_ty_35::IFLA_PORT_VSI_TYPE;
++pub const IFLA_PORT_INSTANCE_UUID: _bindgen_ty_35 = _bindgen_ty_35::IFLA_PORT_INSTANCE_UUID;
++pub const IFLA_PORT_HOST_UUID: _bindgen_ty_35 = _bindgen_ty_35::IFLA_PORT_HOST_UUID;
++pub const IFLA_PORT_REQUEST: _bindgen_ty_35 = _bindgen_ty_35::IFLA_PORT_REQUEST;
++pub const IFLA_PORT_RESPONSE: _bindgen_ty_35 = _bindgen_ty_35::IFLA_PORT_RESPONSE;
++pub const __IFLA_PORT_MAX: _bindgen_ty_35 = _bindgen_ty_35::__IFLA_PORT_MAX;
++pub const PORT_REQUEST_PREASSOCIATE: _bindgen_ty_36 = _bindgen_ty_36::PORT_REQUEST_PREASSOCIATE;
++pub const PORT_REQUEST_PREASSOCIATE_RR: _bindgen_ty_36 = _bindgen_ty_36::PORT_REQUEST_PREASSOCIATE_RR;
++pub const PORT_REQUEST_ASSOCIATE: _bindgen_ty_36 = _bindgen_ty_36::PORT_REQUEST_ASSOCIATE;
++pub const PORT_REQUEST_DISASSOCIATE: _bindgen_ty_36 = _bindgen_ty_36::PORT_REQUEST_DISASSOCIATE;
++pub const PORT_VDP_RESPONSE_SUCCESS: _bindgen_ty_37 = _bindgen_ty_37::PORT_VDP_RESPONSE_SUCCESS;
++pub const PORT_VDP_RESPONSE_INVALID_FORMAT: _bindgen_ty_37 = _bindgen_ty_37::PORT_VDP_RESPONSE_INVALID_FORMAT;
++pub const PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_37 = _bindgen_ty_37::PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES;
++pub const PORT_VDP_RESPONSE_UNUSED_VTID: _bindgen_ty_37 = _bindgen_ty_37::PORT_VDP_RESPONSE_UNUSED_VTID;
++pub const PORT_VDP_RESPONSE_VTID_VIOLATION: _bindgen_ty_37 = _bindgen_ty_37::PORT_VDP_RESPONSE_VTID_VIOLATION;
++pub const PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION: _bindgen_ty_37 = _bindgen_ty_37::PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION;
++pub const PORT_VDP_RESPONSE_OUT_OF_SYNC: _bindgen_ty_37 = _bindgen_ty_37::PORT_VDP_RESPONSE_OUT_OF_SYNC;
++pub const PORT_PROFILE_RESPONSE_SUCCESS: _bindgen_ty_37 = _bindgen_ty_37::PORT_PROFILE_RESPONSE_SUCCESS;
++pub const PORT_PROFILE_RESPONSE_INPROGRESS: _bindgen_ty_37 = _bindgen_ty_37::PORT_PROFILE_RESPONSE_INPROGRESS;
++pub const PORT_PROFILE_RESPONSE_INVALID: _bindgen_ty_37 = _bindgen_ty_37::PORT_PROFILE_RESPONSE_INVALID;
++pub const PORT_PROFILE_RESPONSE_BADSTATE: _bindgen_ty_37 = _bindgen_ty_37::PORT_PROFILE_RESPONSE_BADSTATE;
++pub const PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_37 = _bindgen_ty_37::PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES;
++pub const PORT_PROFILE_RESPONSE_ERROR: _bindgen_ty_37 = _bindgen_ty_37::PORT_PROFILE_RESPONSE_ERROR;
++pub const IFLA_IPOIB_UNSPEC: _bindgen_ty_38 = _bindgen_ty_38::IFLA_IPOIB_UNSPEC;
++pub const IFLA_IPOIB_PKEY: _bindgen_ty_38 = _bindgen_ty_38::IFLA_IPOIB_PKEY;
++pub const IFLA_IPOIB_MODE: _bindgen_ty_38 = _bindgen_ty_38::IFLA_IPOIB_MODE;
++pub const IFLA_IPOIB_UMCAST: _bindgen_ty_38 = _bindgen_ty_38::IFLA_IPOIB_UMCAST;
++pub const __IFLA_IPOIB_MAX: _bindgen_ty_38 = _bindgen_ty_38::__IFLA_IPOIB_MAX;
++pub const IPOIB_MODE_DATAGRAM: _bindgen_ty_39 = _bindgen_ty_39::IPOIB_MODE_DATAGRAM;
++pub const IPOIB_MODE_CONNECTED: _bindgen_ty_39 = _bindgen_ty_39::IPOIB_MODE_CONNECTED;
++pub const HSR_PROTOCOL_HSR: _bindgen_ty_40 = _bindgen_ty_40::HSR_PROTOCOL_HSR;
++pub const HSR_PROTOCOL_PRP: _bindgen_ty_40 = _bindgen_ty_40::HSR_PROTOCOL_PRP;
++pub const HSR_PROTOCOL_MAX: _bindgen_ty_40 = _bindgen_ty_40::HSR_PROTOCOL_MAX;
++pub const IFLA_HSR_UNSPEC: _bindgen_ty_41 = _bindgen_ty_41::IFLA_HSR_UNSPEC;
++pub const IFLA_HSR_SLAVE1: _bindgen_ty_41 = _bindgen_ty_41::IFLA_HSR_SLAVE1;
++pub const IFLA_HSR_SLAVE2: _bindgen_ty_41 = _bindgen_ty_41::IFLA_HSR_SLAVE2;
++pub const IFLA_HSR_MULTICAST_SPEC: _bindgen_ty_41 = _bindgen_ty_41::IFLA_HSR_MULTICAST_SPEC;
++pub const IFLA_HSR_SUPERVISION_ADDR: _bindgen_ty_41 = _bindgen_ty_41::IFLA_HSR_SUPERVISION_ADDR;
++pub const IFLA_HSR_SEQ_NR: _bindgen_ty_41 = _bindgen_ty_41::IFLA_HSR_SEQ_NR;
++pub const IFLA_HSR_VERSION: _bindgen_ty_41 = _bindgen_ty_41::IFLA_HSR_VERSION;
++pub const IFLA_HSR_PROTOCOL: _bindgen_ty_41 = _bindgen_ty_41::IFLA_HSR_PROTOCOL;
++pub const __IFLA_HSR_MAX: _bindgen_ty_41 = _bindgen_ty_41::__IFLA_HSR_MAX;
++pub const IFLA_STATS_UNSPEC: _bindgen_ty_42 = _bindgen_ty_42::IFLA_STATS_UNSPEC;
++pub const IFLA_STATS_LINK_64: _bindgen_ty_42 = _bindgen_ty_42::IFLA_STATS_LINK_64;
++pub const IFLA_STATS_LINK_XSTATS: _bindgen_ty_42 = _bindgen_ty_42::IFLA_STATS_LINK_XSTATS;
++pub const IFLA_STATS_LINK_XSTATS_SLAVE: _bindgen_ty_42 = _bindgen_ty_42::IFLA_STATS_LINK_XSTATS_SLAVE;
++pub const IFLA_STATS_LINK_OFFLOAD_XSTATS: _bindgen_ty_42 = _bindgen_ty_42::IFLA_STATS_LINK_OFFLOAD_XSTATS;
++pub const IFLA_STATS_AF_SPEC: _bindgen_ty_42 = _bindgen_ty_42::IFLA_STATS_AF_SPEC;
++pub const __IFLA_STATS_MAX: _bindgen_ty_42 = _bindgen_ty_42::__IFLA_STATS_MAX;
++pub const IFLA_STATS_GETSET_UNSPEC: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_GETSET_UNSPEC;
++pub const IFLA_STATS_GET_FILTERS: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_GET_FILTERS;
++pub const IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS;
++pub const __IFLA_STATS_GETSET_MAX: _bindgen_ty_43 = _bindgen_ty_43::__IFLA_STATS_GETSET_MAX;
++pub const LINK_XSTATS_TYPE_UNSPEC: _bindgen_ty_44 = _bindgen_ty_44::LINK_XSTATS_TYPE_UNSPEC;
++pub const LINK_XSTATS_TYPE_BRIDGE: _bindgen_ty_44 = _bindgen_ty_44::LINK_XSTATS_TYPE_BRIDGE;
++pub const LINK_XSTATS_TYPE_BOND: _bindgen_ty_44 = _bindgen_ty_44::LINK_XSTATS_TYPE_BOND;
++pub const __LINK_XSTATS_TYPE_MAX: _bindgen_ty_44 = _bindgen_ty_44::__LINK_XSTATS_TYPE_MAX;
++pub const IFLA_OFFLOAD_XSTATS_UNSPEC: _bindgen_ty_45 = _bindgen_ty_45::IFLA_OFFLOAD_XSTATS_UNSPEC;
++pub const IFLA_OFFLOAD_XSTATS_CPU_HIT: _bindgen_ty_45 = _bindgen_ty_45::IFLA_OFFLOAD_XSTATS_CPU_HIT;
++pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO: _bindgen_ty_45 = _bindgen_ty_45::IFLA_OFFLOAD_XSTATS_HW_S_INFO;
++pub const IFLA_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_45 = _bindgen_ty_45::IFLA_OFFLOAD_XSTATS_L3_STATS;
++pub const __IFLA_OFFLOAD_XSTATS_MAX: _bindgen_ty_45 = _bindgen_ty_45::__IFLA_OFFLOAD_XSTATS_MAX;
++pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC;
++pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST;
++pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED;
++pub const __IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX: _bindgen_ty_46 = _bindgen_ty_46::__IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX;
++pub const XDP_ATTACHED_NONE: _bindgen_ty_47 = _bindgen_ty_47::XDP_ATTACHED_NONE;
++pub const XDP_ATTACHED_DRV: _bindgen_ty_47 = _bindgen_ty_47::XDP_ATTACHED_DRV;
++pub const XDP_ATTACHED_SKB: _bindgen_ty_47 = _bindgen_ty_47::XDP_ATTACHED_SKB;
++pub const XDP_ATTACHED_HW: _bindgen_ty_47 = _bindgen_ty_47::XDP_ATTACHED_HW;
++pub const XDP_ATTACHED_MULTI: _bindgen_ty_47 = _bindgen_ty_47::XDP_ATTACHED_MULTI;
++pub const IFLA_XDP_UNSPEC: _bindgen_ty_48 = _bindgen_ty_48::IFLA_XDP_UNSPEC;
++pub const IFLA_XDP_FD: _bindgen_ty_48 = _bindgen_ty_48::IFLA_XDP_FD;
++pub const IFLA_XDP_ATTACHED: _bindgen_ty_48 = _bindgen_ty_48::IFLA_XDP_ATTACHED;
++pub const IFLA_XDP_FLAGS: _bindgen_ty_48 = _bindgen_ty_48::IFLA_XDP_FLAGS;
++pub const IFLA_XDP_PROG_ID: _bindgen_ty_48 = _bindgen_ty_48::IFLA_XDP_PROG_ID;
++pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_48 = _bindgen_ty_48::IFLA_XDP_DRV_PROG_ID;
++pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_48 = _bindgen_ty_48::IFLA_XDP_SKB_PROG_ID;
++pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_48 = _bindgen_ty_48::IFLA_XDP_HW_PROG_ID;
++pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_48 = _bindgen_ty_48::IFLA_XDP_EXPECTED_FD;
++pub const __IFLA_XDP_MAX: _bindgen_ty_48 = _bindgen_ty_48::__IFLA_XDP_MAX;
++pub const IFLA_EVENT_NONE: _bindgen_ty_49 = _bindgen_ty_49::IFLA_EVENT_NONE;
++pub const IFLA_EVENT_REBOOT: _bindgen_ty_49 = _bindgen_ty_49::IFLA_EVENT_REBOOT;
++pub const IFLA_EVENT_FEATURES: _bindgen_ty_49 = _bindgen_ty_49::IFLA_EVENT_FEATURES;
++pub const IFLA_EVENT_BONDING_FAILOVER: _bindgen_ty_49 = _bindgen_ty_49::IFLA_EVENT_BONDING_FAILOVER;
++pub const IFLA_EVENT_NOTIFY_PEERS: _bindgen_ty_49 = _bindgen_ty_49::IFLA_EVENT_NOTIFY_PEERS;
++pub const IFLA_EVENT_IGMP_RESEND: _bindgen_ty_49 = _bindgen_ty_49::IFLA_EVENT_IGMP_RESEND;
++pub const IFLA_EVENT_BONDING_OPTIONS: _bindgen_ty_49 = _bindgen_ty_49::IFLA_EVENT_BONDING_OPTIONS;
++pub const IFLA_TUN_UNSPEC: _bindgen_ty_50 = _bindgen_ty_50::IFLA_TUN_UNSPEC;
++pub const IFLA_TUN_OWNER: _bindgen_ty_50 = _bindgen_ty_50::IFLA_TUN_OWNER;
++pub const IFLA_TUN_GROUP: _bindgen_ty_50 = _bindgen_ty_50::IFLA_TUN_GROUP;
++pub const IFLA_TUN_TYPE: _bindgen_ty_50 = _bindgen_ty_50::IFLA_TUN_TYPE;
++pub const IFLA_TUN_PI: _bindgen_ty_50 = _bindgen_ty_50::IFLA_TUN_PI;
++pub const IFLA_TUN_VNET_HDR: _bindgen_ty_50 = _bindgen_ty_50::IFLA_TUN_VNET_HDR;
++pub const IFLA_TUN_PERSIST: _bindgen_ty_50 = _bindgen_ty_50::IFLA_TUN_PERSIST;
++pub const IFLA_TUN_MULTI_QUEUE: _bindgen_ty_50 = _bindgen_ty_50::IFLA_TUN_MULTI_QUEUE;
++pub const IFLA_TUN_NUM_QUEUES: _bindgen_ty_50 = _bindgen_ty_50::IFLA_TUN_NUM_QUEUES;
++pub const IFLA_TUN_NUM_DISABLED_QUEUES: _bindgen_ty_50 = _bindgen_ty_50::IFLA_TUN_NUM_DISABLED_QUEUES;
++pub const __IFLA_TUN_MAX: _bindgen_ty_50 = _bindgen_ty_50::__IFLA_TUN_MAX;
++pub const IFLA_RMNET_UNSPEC: _bindgen_ty_51 = _bindgen_ty_51::IFLA_RMNET_UNSPEC;
++pub const IFLA_RMNET_MUX_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_RMNET_MUX_ID;
++pub const IFLA_RMNET_FLAGS: _bindgen_ty_51 = _bindgen_ty_51::IFLA_RMNET_FLAGS;
++pub const __IFLA_RMNET_MAX: _bindgen_ty_51 = _bindgen_ty_51::__IFLA_RMNET_MAX;
++pub const IFLA_MCTP_UNSPEC: _bindgen_ty_52 = _bindgen_ty_52::IFLA_MCTP_UNSPEC;
++pub const IFLA_MCTP_NET: _bindgen_ty_52 = _bindgen_ty_52::IFLA_MCTP_NET;
++pub const __IFLA_MCTP_MAX: _bindgen_ty_52 = _bindgen_ty_52::__IFLA_MCTP_MAX;
++pub const IFLA_DSA_UNSPEC: _bindgen_ty_53 = _bindgen_ty_53::IFLA_DSA_UNSPEC;
++pub const IFLA_DSA_MASTER: _bindgen_ty_53 = _bindgen_ty_53::IFLA_DSA_MASTER;
++pub const __IFLA_DSA_MAX: _bindgen_ty_53 = _bindgen_ty_53::__IFLA_DSA_MAX;
++pub const IFA_UNSPEC: _bindgen_ty_54 = _bindgen_ty_54::IFA_UNSPEC;
++pub const IFA_ADDRESS: _bindgen_ty_54 = _bindgen_ty_54::IFA_ADDRESS;
++pub const IFA_LOCAL: _bindgen_ty_54 = _bindgen_ty_54::IFA_LOCAL;
++pub const IFA_LABEL: _bindgen_ty_54 = _bindgen_ty_54::IFA_LABEL;
++pub const IFA_BROADCAST: _bindgen_ty_54 = _bindgen_ty_54::IFA_BROADCAST;
++pub const IFA_ANYCAST: _bindgen_ty_54 = _bindgen_ty_54::IFA_ANYCAST;
++pub const IFA_CACHEINFO: _bindgen_ty_54 = _bindgen_ty_54::IFA_CACHEINFO;
++pub const IFA_MULTICAST: _bindgen_ty_54 = _bindgen_ty_54::IFA_MULTICAST;
++pub const IFA_FLAGS: _bindgen_ty_54 = _bindgen_ty_54::IFA_FLAGS;
++pub const IFA_RT_PRIORITY: _bindgen_ty_54 = _bindgen_ty_54::IFA_RT_PRIORITY;
++pub const IFA_TARGET_NETNSID: _bindgen_ty_54 = _bindgen_ty_54::IFA_TARGET_NETNSID;
++pub const IFA_PROTO: _bindgen_ty_54 = _bindgen_ty_54::IFA_PROTO;
++pub const __IFA_MAX: _bindgen_ty_54 = _bindgen_ty_54::__IFA_MAX;
++pub const NDA_UNSPEC: _bindgen_ty_55 = _bindgen_ty_55::NDA_UNSPEC;
++pub const NDA_DST: _bindgen_ty_55 = _bindgen_ty_55::NDA_DST;
++pub const NDA_LLADDR: _bindgen_ty_55 = _bindgen_ty_55::NDA_LLADDR;
++pub const NDA_CACHEINFO: _bindgen_ty_55 = _bindgen_ty_55::NDA_CACHEINFO;
++pub const NDA_PROBES: _bindgen_ty_55 = _bindgen_ty_55::NDA_PROBES;
++pub const NDA_VLAN: _bindgen_ty_55 = _bindgen_ty_55::NDA_VLAN;
++pub const NDA_PORT: _bindgen_ty_55 = _bindgen_ty_55::NDA_PORT;
++pub const NDA_VNI: _bindgen_ty_55 = _bindgen_ty_55::NDA_VNI;
++pub const NDA_IFINDEX: _bindgen_ty_55 = _bindgen_ty_55::NDA_IFINDEX;
++pub const NDA_MASTER: _bindgen_ty_55 = _bindgen_ty_55::NDA_MASTER;
++pub const NDA_LINK_NETNSID: _bindgen_ty_55 = _bindgen_ty_55::NDA_LINK_NETNSID;
++pub const NDA_SRC_VNI: _bindgen_ty_55 = _bindgen_ty_55::NDA_SRC_VNI;
++pub const NDA_PROTOCOL: _bindgen_ty_55 = _bindgen_ty_55::NDA_PROTOCOL;
++pub const NDA_NH_ID: _bindgen_ty_55 = _bindgen_ty_55::NDA_NH_ID;
++pub const NDA_FDB_EXT_ATTRS: _bindgen_ty_55 = _bindgen_ty_55::NDA_FDB_EXT_ATTRS;
++pub const NDA_FLAGS_EXT: _bindgen_ty_55 = _bindgen_ty_55::NDA_FLAGS_EXT;
++pub const NDA_NDM_STATE_MASK: _bindgen_ty_55 = _bindgen_ty_55::NDA_NDM_STATE_MASK;
++pub const NDA_NDM_FLAGS_MASK: _bindgen_ty_55 = _bindgen_ty_55::NDA_NDM_FLAGS_MASK;
++pub const __NDA_MAX: _bindgen_ty_55 = _bindgen_ty_55::__NDA_MAX;
++pub const NDTPA_UNSPEC: _bindgen_ty_56 = _bindgen_ty_56::NDTPA_UNSPEC;
++pub const NDTPA_IFINDEX: _bindgen_ty_56 = _bindgen_ty_56::NDTPA_IFINDEX;
++pub const NDTPA_REFCNT: _bindgen_ty_56 = _bindgen_ty_56::NDTPA_REFCNT;
++pub const NDTPA_REACHABLE_TIME: _bindgen_ty_56 = _bindgen_ty_56::NDTPA_REACHABLE_TIME;
++pub const NDTPA_BASE_REACHABLE_TIME: _bindgen_ty_56 = _bindgen_ty_56::NDTPA_BASE_REACHABLE_TIME;
++pub const NDTPA_RETRANS_TIME: _bindgen_ty_56 = _bindgen_ty_56::NDTPA_RETRANS_TIME;
++pub const NDTPA_GC_STALETIME: _bindgen_ty_56 = _bindgen_ty_56::NDTPA_GC_STALETIME;
++pub const NDTPA_DELAY_PROBE_TIME: _bindgen_ty_56 = _bindgen_ty_56::NDTPA_DELAY_PROBE_TIME;
++pub const NDTPA_QUEUE_LEN: _bindgen_ty_56 = _bindgen_ty_56::NDTPA_QUEUE_LEN;
++pub const NDTPA_APP_PROBES: _bindgen_ty_56 = _bindgen_ty_56::NDTPA_APP_PROBES;
++pub const NDTPA_UCAST_PROBES: _bindgen_ty_56 = _bindgen_ty_56::NDTPA_UCAST_PROBES;
++pub const NDTPA_MCAST_PROBES: _bindgen_ty_56 = _bindgen_ty_56::NDTPA_MCAST_PROBES;
++pub const NDTPA_ANYCAST_DELAY: _bindgen_ty_56 = _bindgen_ty_56::NDTPA_ANYCAST_DELAY;
++pub const NDTPA_PROXY_DELAY: _bindgen_ty_56 = _bindgen_ty_56::NDTPA_PROXY_DELAY;
++pub const NDTPA_PROXY_QLEN: _bindgen_ty_56 = _bindgen_ty_56::NDTPA_PROXY_QLEN;
++pub const NDTPA_LOCKTIME: _bindgen_ty_56 = _bindgen_ty_56::NDTPA_LOCKTIME;
++pub const NDTPA_QUEUE_LENBYTES: _bindgen_ty_56 = _bindgen_ty_56::NDTPA_QUEUE_LENBYTES;
++pub const NDTPA_MCAST_REPROBES: _bindgen_ty_56 = _bindgen_ty_56::NDTPA_MCAST_REPROBES;
++pub const NDTPA_PAD: _bindgen_ty_56 = _bindgen_ty_56::NDTPA_PAD;
++pub const NDTPA_INTERVAL_PROBE_TIME_MS: _bindgen_ty_56 = _bindgen_ty_56::NDTPA_INTERVAL_PROBE_TIME_MS;
++pub const __NDTPA_MAX: _bindgen_ty_56 = _bindgen_ty_56::__NDTPA_MAX;
++pub const NDTA_UNSPEC: _bindgen_ty_57 = _bindgen_ty_57::NDTA_UNSPEC;
++pub const NDTA_NAME: _bindgen_ty_57 = _bindgen_ty_57::NDTA_NAME;
++pub const NDTA_THRESH1: _bindgen_ty_57 = _bindgen_ty_57::NDTA_THRESH1;
++pub const NDTA_THRESH2: _bindgen_ty_57 = _bindgen_ty_57::NDTA_THRESH2;
++pub const NDTA_THRESH3: _bindgen_ty_57 = _bindgen_ty_57::NDTA_THRESH3;
++pub const NDTA_CONFIG: _bindgen_ty_57 = _bindgen_ty_57::NDTA_CONFIG;
++pub const NDTA_PARMS: _bindgen_ty_57 = _bindgen_ty_57::NDTA_PARMS;
++pub const NDTA_STATS: _bindgen_ty_57 = _bindgen_ty_57::NDTA_STATS;
++pub const NDTA_GC_INTERVAL: _bindgen_ty_57 = _bindgen_ty_57::NDTA_GC_INTERVAL;
++pub const NDTA_PAD: _bindgen_ty_57 = _bindgen_ty_57::NDTA_PAD;
++pub const __NDTA_MAX: _bindgen_ty_57 = _bindgen_ty_57::__NDTA_MAX;
++pub const FDB_NOTIFY_BIT: _bindgen_ty_58 = _bindgen_ty_58::FDB_NOTIFY_BIT;
++pub const FDB_NOTIFY_INACTIVE_BIT: _bindgen_ty_58 = _bindgen_ty_58::FDB_NOTIFY_INACTIVE_BIT;
++pub const NFEA_UNSPEC: _bindgen_ty_59 = _bindgen_ty_59::NFEA_UNSPEC;
++pub const NFEA_ACTIVITY_NOTIFY: _bindgen_ty_59 = _bindgen_ty_59::NFEA_ACTIVITY_NOTIFY;
++pub const NFEA_DONT_REFRESH: _bindgen_ty_59 = _bindgen_ty_59::NFEA_DONT_REFRESH;
++pub const __NFEA_MAX: _bindgen_ty_59 = _bindgen_ty_59::__NFEA_MAX;
++pub const RTM_BASE: _bindgen_ty_60 = _bindgen_ty_60::RTM_BASE;
++pub const RTM_NEWLINK: _bindgen_ty_60 = _bindgen_ty_60::RTM_BASE;
++pub const RTM_DELLINK: _bindgen_ty_60 = _bindgen_ty_60::RTM_DELLINK;
++pub const RTM_GETLINK: _bindgen_ty_60 = _bindgen_ty_60::RTM_GETLINK;
++pub const RTM_SETLINK: _bindgen_ty_60 = _bindgen_ty_60::RTM_SETLINK;
++pub const RTM_NEWADDR: _bindgen_ty_60 = _bindgen_ty_60::RTM_NEWADDR;
++pub const RTM_DELADDR: _bindgen_ty_60 = _bindgen_ty_60::RTM_DELADDR;
++pub const RTM_GETADDR: _bindgen_ty_60 = _bindgen_ty_60::RTM_GETADDR;
++pub const RTM_NEWROUTE: _bindgen_ty_60 = _bindgen_ty_60::RTM_NEWROUTE;
++pub const RTM_DELROUTE: _bindgen_ty_60 = _bindgen_ty_60::RTM_DELROUTE;
++pub const RTM_GETROUTE: _bindgen_ty_60 = _bindgen_ty_60::RTM_GETROUTE;
++pub const RTM_NEWNEIGH: _bindgen_ty_60 = _bindgen_ty_60::RTM_NEWNEIGH;
++pub const RTM_DELNEIGH: _bindgen_ty_60 = _bindgen_ty_60::RTM_DELNEIGH;
++pub const RTM_GETNEIGH: _bindgen_ty_60 = _bindgen_ty_60::RTM_GETNEIGH;
++pub const RTM_NEWRULE: _bindgen_ty_60 = _bindgen_ty_60::RTM_NEWRULE;
++pub const RTM_DELRULE: _bindgen_ty_60 = _bindgen_ty_60::RTM_DELRULE;
++pub const RTM_GETRULE: _bindgen_ty_60 = _bindgen_ty_60::RTM_GETRULE;
++pub const RTM_NEWQDISC: _bindgen_ty_60 = _bindgen_ty_60::RTM_NEWQDISC;
++pub const RTM_DELQDISC: _bindgen_ty_60 = _bindgen_ty_60::RTM_DELQDISC;
++pub const RTM_GETQDISC: _bindgen_ty_60 = _bindgen_ty_60::RTM_GETQDISC;
++pub const RTM_NEWTCLASS: _bindgen_ty_60 = _bindgen_ty_60::RTM_NEWTCLASS;
++pub const RTM_DELTCLASS: _bindgen_ty_60 = _bindgen_ty_60::RTM_DELTCLASS;
++pub const RTM_GETTCLASS: _bindgen_ty_60 = _bindgen_ty_60::RTM_GETTCLASS;
++pub const RTM_NEWTFILTER: _bindgen_ty_60 = _bindgen_ty_60::RTM_NEWTFILTER;
++pub const RTM_DELTFILTER: _bindgen_ty_60 = _bindgen_ty_60::RTM_DELTFILTER;
++pub const RTM_GETTFILTER: _bindgen_ty_60 = _bindgen_ty_60::RTM_GETTFILTER;
++pub const RTM_NEWACTION: _bindgen_ty_60 = _bindgen_ty_60::RTM_NEWACTION;
++pub const RTM_DELACTION: _bindgen_ty_60 = _bindgen_ty_60::RTM_DELACTION;
++pub const RTM_GETACTION: _bindgen_ty_60 = _bindgen_ty_60::RTM_GETACTION;
++pub const RTM_NEWPREFIX: _bindgen_ty_60 = _bindgen_ty_60::RTM_NEWPREFIX;
++pub const RTM_GETMULTICAST: _bindgen_ty_60 = _bindgen_ty_60::RTM_GETMULTICAST;
++pub const RTM_GETANYCAST: _bindgen_ty_60 = _bindgen_ty_60::RTM_GETANYCAST;
++pub const RTM_NEWNEIGHTBL: _bindgen_ty_60 = _bindgen_ty_60::RTM_NEWNEIGHTBL;
++pub const RTM_GETNEIGHTBL: _bindgen_ty_60 = _bindgen_ty_60::RTM_GETNEIGHTBL;
++pub const RTM_SETNEIGHTBL: _bindgen_ty_60 = _bindgen_ty_60::RTM_SETNEIGHTBL;
++pub const RTM_NEWNDUSEROPT: _bindgen_ty_60 = _bindgen_ty_60::RTM_NEWNDUSEROPT;
++pub const RTM_NEWADDRLABEL: _bindgen_ty_60 = _bindgen_ty_60::RTM_NEWADDRLABEL;
++pub const RTM_DELADDRLABEL: _bindgen_ty_60 = _bindgen_ty_60::RTM_DELADDRLABEL;
++pub const RTM_GETADDRLABEL: _bindgen_ty_60 = _bindgen_ty_60::RTM_GETADDRLABEL;
++pub const RTM_GETDCB: _bindgen_ty_60 = _bindgen_ty_60::RTM_GETDCB;
++pub const RTM_SETDCB: _bindgen_ty_60 = _bindgen_ty_60::RTM_SETDCB;
++pub const RTM_NEWNETCONF: _bindgen_ty_60 = _bindgen_ty_60::RTM_NEWNETCONF;
++pub const RTM_DELNETCONF: _bindgen_ty_60 = _bindgen_ty_60::RTM_DELNETCONF;
++pub const RTM_GETNETCONF: _bindgen_ty_60 = _bindgen_ty_60::RTM_GETNETCONF;
++pub const RTM_NEWMDB: _bindgen_ty_60 = _bindgen_ty_60::RTM_NEWMDB;
++pub const RTM_DELMDB: _bindgen_ty_60 = _bindgen_ty_60::RTM_DELMDB;
++pub const RTM_GETMDB: _bindgen_ty_60 = _bindgen_ty_60::RTM_GETMDB;
++pub const RTM_NEWNSID: _bindgen_ty_60 = _bindgen_ty_60::RTM_NEWNSID;
++pub const RTM_DELNSID: _bindgen_ty_60 = _bindgen_ty_60::RTM_DELNSID;
++pub const RTM_GETNSID: _bindgen_ty_60 = _bindgen_ty_60::RTM_GETNSID;
++pub const RTM_NEWSTATS: _bindgen_ty_60 = _bindgen_ty_60::RTM_NEWSTATS;
++pub const RTM_GETSTATS: _bindgen_ty_60 = _bindgen_ty_60::RTM_GETSTATS;
++pub const RTM_SETSTATS: _bindgen_ty_60 = _bindgen_ty_60::RTM_SETSTATS;
++pub const RTM_NEWCACHEREPORT: _bindgen_ty_60 = _bindgen_ty_60::RTM_NEWCACHEREPORT;
++pub const RTM_NEWCHAIN: _bindgen_ty_60 = _bindgen_ty_60::RTM_NEWCHAIN;
++pub const RTM_DELCHAIN: _bindgen_ty_60 = _bindgen_ty_60::RTM_DELCHAIN;
++pub const RTM_GETCHAIN: _bindgen_ty_60 = _bindgen_ty_60::RTM_GETCHAIN;
++pub const RTM_NEWNEXTHOP: _bindgen_ty_60 = _bindgen_ty_60::RTM_NEWNEXTHOP;
++pub const RTM_DELNEXTHOP: _bindgen_ty_60 = _bindgen_ty_60::RTM_DELNEXTHOP;
++pub const RTM_GETNEXTHOP: _bindgen_ty_60 = _bindgen_ty_60::RTM_GETNEXTHOP;
++pub const RTM_NEWLINKPROP: _bindgen_ty_60 = _bindgen_ty_60::RTM_NEWLINKPROP;
++pub const RTM_DELLINKPROP: _bindgen_ty_60 = _bindgen_ty_60::RTM_DELLINKPROP;
++pub const RTM_GETLINKPROP: _bindgen_ty_60 = _bindgen_ty_60::RTM_GETLINKPROP;
++pub const RTM_NEWVLAN: _bindgen_ty_60 = _bindgen_ty_60::RTM_NEWVLAN;
++pub const RTM_DELVLAN: _bindgen_ty_60 = _bindgen_ty_60::RTM_DELVLAN;
++pub const RTM_GETVLAN: _bindgen_ty_60 = _bindgen_ty_60::RTM_GETVLAN;
++pub const RTM_NEWNEXTHOPBUCKET: _bindgen_ty_60 = _bindgen_ty_60::RTM_NEWNEXTHOPBUCKET;
++pub const RTM_DELNEXTHOPBUCKET: _bindgen_ty_60 = _bindgen_ty_60::RTM_DELNEXTHOPBUCKET;
++pub const RTM_GETNEXTHOPBUCKET: _bindgen_ty_60 = _bindgen_ty_60::RTM_GETNEXTHOPBUCKET;
++pub const RTM_NEWTUNNEL: _bindgen_ty_60 = _bindgen_ty_60::RTM_NEWTUNNEL;
++pub const RTM_DELTUNNEL: _bindgen_ty_60 = _bindgen_ty_60::RTM_DELTUNNEL;
++pub const RTM_GETTUNNEL: _bindgen_ty_60 = _bindgen_ty_60::RTM_GETTUNNEL;
++pub const __RTM_MAX: _bindgen_ty_60 = _bindgen_ty_60::__RTM_MAX;
++pub const RTN_UNSPEC: _bindgen_ty_61 = _bindgen_ty_61::RTN_UNSPEC;
++pub const RTN_UNICAST: _bindgen_ty_61 = _bindgen_ty_61::RTN_UNICAST;
++pub const RTN_LOCAL: _bindgen_ty_61 = _bindgen_ty_61::RTN_LOCAL;
++pub const RTN_BROADCAST: _bindgen_ty_61 = _bindgen_ty_61::RTN_BROADCAST;
++pub const RTN_ANYCAST: _bindgen_ty_61 = _bindgen_ty_61::RTN_ANYCAST;
++pub const RTN_MULTICAST: _bindgen_ty_61 = _bindgen_ty_61::RTN_MULTICAST;
++pub const RTN_BLACKHOLE: _bindgen_ty_61 = _bindgen_ty_61::RTN_BLACKHOLE;
++pub const RTN_UNREACHABLE: _bindgen_ty_61 = _bindgen_ty_61::RTN_UNREACHABLE;
++pub const RTN_PROHIBIT: _bindgen_ty_61 = _bindgen_ty_61::RTN_PROHIBIT;
++pub const RTN_THROW: _bindgen_ty_61 = _bindgen_ty_61::RTN_THROW;
++pub const RTN_NAT: _bindgen_ty_61 = _bindgen_ty_61::RTN_NAT;
++pub const RTN_XRESOLVE: _bindgen_ty_61 = _bindgen_ty_61::RTN_XRESOLVE;
++pub const __RTN_MAX: _bindgen_ty_61 = _bindgen_ty_61::__RTN_MAX;
++pub const RTAX_UNSPEC: _bindgen_ty_62 = _bindgen_ty_62::RTAX_UNSPEC;
++pub const RTAX_LOCK: _bindgen_ty_62 = _bindgen_ty_62::RTAX_LOCK;
++pub const RTAX_MTU: _bindgen_ty_62 = _bindgen_ty_62::RTAX_MTU;
++pub const RTAX_WINDOW: _bindgen_ty_62 = _bindgen_ty_62::RTAX_WINDOW;
++pub const RTAX_RTT: _bindgen_ty_62 = _bindgen_ty_62::RTAX_RTT;
++pub const RTAX_RTTVAR: _bindgen_ty_62 = _bindgen_ty_62::RTAX_RTTVAR;
++pub const RTAX_SSTHRESH: _bindgen_ty_62 = _bindgen_ty_62::RTAX_SSTHRESH;
++pub const RTAX_CWND: _bindgen_ty_62 = _bindgen_ty_62::RTAX_CWND;
++pub const RTAX_ADVMSS: _bindgen_ty_62 = _bindgen_ty_62::RTAX_ADVMSS;
++pub const RTAX_REORDERING: _bindgen_ty_62 = _bindgen_ty_62::RTAX_REORDERING;
++pub const RTAX_HOPLIMIT: _bindgen_ty_62 = _bindgen_ty_62::RTAX_HOPLIMIT;
++pub const RTAX_INITCWND: _bindgen_ty_62 = _bindgen_ty_62::RTAX_INITCWND;
++pub const RTAX_FEATURES: _bindgen_ty_62 = _bindgen_ty_62::RTAX_FEATURES;
++pub const RTAX_RTO_MIN: _bindgen_ty_62 = _bindgen_ty_62::RTAX_RTO_MIN;
++pub const RTAX_INITRWND: _bindgen_ty_62 = _bindgen_ty_62::RTAX_INITRWND;
++pub const RTAX_QUICKACK: _bindgen_ty_62 = _bindgen_ty_62::RTAX_QUICKACK;
++pub const RTAX_CC_ALGO: _bindgen_ty_62 = _bindgen_ty_62::RTAX_CC_ALGO;
++pub const RTAX_FASTOPEN_NO_COOKIE: _bindgen_ty_62 = _bindgen_ty_62::RTAX_FASTOPEN_NO_COOKIE;
++pub const __RTAX_MAX: _bindgen_ty_62 = _bindgen_ty_62::__RTAX_MAX;
++pub const PREFIX_UNSPEC: _bindgen_ty_63 = _bindgen_ty_63::PREFIX_UNSPEC;
++pub const PREFIX_ADDRESS: _bindgen_ty_63 = _bindgen_ty_63::PREFIX_ADDRESS;
++pub const PREFIX_CACHEINFO: _bindgen_ty_63 = _bindgen_ty_63::PREFIX_CACHEINFO;
++pub const __PREFIX_MAX: _bindgen_ty_63 = _bindgen_ty_63::__PREFIX_MAX;
++pub const TCA_UNSPEC: _bindgen_ty_64 = _bindgen_ty_64::TCA_UNSPEC;
++pub const TCA_KIND: _bindgen_ty_64 = _bindgen_ty_64::TCA_KIND;
++pub const TCA_OPTIONS: _bindgen_ty_64 = _bindgen_ty_64::TCA_OPTIONS;
++pub const TCA_STATS: _bindgen_ty_64 = _bindgen_ty_64::TCA_STATS;
++pub const TCA_XSTATS: _bindgen_ty_64 = _bindgen_ty_64::TCA_XSTATS;
++pub const TCA_RATE: _bindgen_ty_64 = _bindgen_ty_64::TCA_RATE;
++pub const TCA_FCNT: _bindgen_ty_64 = _bindgen_ty_64::TCA_FCNT;
++pub const TCA_STATS2: _bindgen_ty_64 = _bindgen_ty_64::TCA_STATS2;
++pub const TCA_STAB: _bindgen_ty_64 = _bindgen_ty_64::TCA_STAB;
++pub const TCA_PAD: _bindgen_ty_64 = _bindgen_ty_64::TCA_PAD;
++pub const TCA_DUMP_INVISIBLE: _bindgen_ty_64 = _bindgen_ty_64::TCA_DUMP_INVISIBLE;
++pub const TCA_CHAIN: _bindgen_ty_64 = _bindgen_ty_64::TCA_CHAIN;
++pub const TCA_HW_OFFLOAD: _bindgen_ty_64 = _bindgen_ty_64::TCA_HW_OFFLOAD;
++pub const TCA_INGRESS_BLOCK: _bindgen_ty_64 = _bindgen_ty_64::TCA_INGRESS_BLOCK;
++pub const TCA_EGRESS_BLOCK: _bindgen_ty_64 = _bindgen_ty_64::TCA_EGRESS_BLOCK;
++pub const TCA_DUMP_FLAGS: _bindgen_ty_64 = _bindgen_ty_64::TCA_DUMP_FLAGS;
++pub const TCA_EXT_WARN_MSG: _bindgen_ty_64 = _bindgen_ty_64::TCA_EXT_WARN_MSG;
++pub const __TCA_MAX: _bindgen_ty_64 = _bindgen_ty_64::__TCA_MAX;
++pub const NDUSEROPT_UNSPEC: _bindgen_ty_65 = _bindgen_ty_65::NDUSEROPT_UNSPEC;
++pub const NDUSEROPT_SRCADDR: _bindgen_ty_65 = _bindgen_ty_65::NDUSEROPT_SRCADDR;
++pub const __NDUSEROPT_MAX: _bindgen_ty_65 = _bindgen_ty_65::__NDUSEROPT_MAX;
++pub const TCA_ROOT_UNSPEC: _bindgen_ty_66 = _bindgen_ty_66::TCA_ROOT_UNSPEC;
++pub const TCA_ROOT_TAB: _bindgen_ty_66 = _bindgen_ty_66::TCA_ROOT_TAB;
++pub const TCA_ROOT_FLAGS: _bindgen_ty_66 = _bindgen_ty_66::TCA_ROOT_FLAGS;
++pub const TCA_ROOT_COUNT: _bindgen_ty_66 = _bindgen_ty_66::TCA_ROOT_COUNT;
++pub const TCA_ROOT_TIME_DELTA: _bindgen_ty_66 = _bindgen_ty_66::TCA_ROOT_TIME_DELTA;
++pub const TCA_ROOT_EXT_WARN_MSG: _bindgen_ty_66 = _bindgen_ty_66::TCA_ROOT_EXT_WARN_MSG;
++pub const __TCA_ROOT_MAX: _bindgen_ty_66 = _bindgen_ty_66::__TCA_ROOT_MAX;
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum nlmsgerr_attrs {
++NLMSGERR_ATTR_UNUSED = 0,
++NLMSGERR_ATTR_MSG = 1,
++NLMSGERR_ATTR_OFFS = 2,
++NLMSGERR_ATTR_COOKIE = 3,
++NLMSGERR_ATTR_POLICY = 4,
++NLMSGERR_ATTR_MISS_TYPE = 5,
++NLMSGERR_ATTR_MISS_NEST = 6,
++__NLMSGERR_ATTR_MAX = 7,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum nl_mmap_status {
++NL_MMAP_STATUS_UNUSED = 0,
++NL_MMAP_STATUS_RESERVED = 1,
++NL_MMAP_STATUS_VALID = 2,
++NL_MMAP_STATUS_COPY = 3,
++NL_MMAP_STATUS_SKIP = 4,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_1 {
++NETLINK_UNCONNECTED = 0,
++NETLINK_CONNECTED = 1,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum netlink_attribute_type {
++NL_ATTR_TYPE_INVALID = 0,
++NL_ATTR_TYPE_FLAG = 1,
++NL_ATTR_TYPE_U8 = 2,
++NL_ATTR_TYPE_U16 = 3,
++NL_ATTR_TYPE_U32 = 4,
++NL_ATTR_TYPE_U64 = 5,
++NL_ATTR_TYPE_S8 = 6,
++NL_ATTR_TYPE_S16 = 7,
++NL_ATTR_TYPE_S32 = 8,
++NL_ATTR_TYPE_S64 = 9,
++NL_ATTR_TYPE_BINARY = 10,
++NL_ATTR_TYPE_STRING = 11,
++NL_ATTR_TYPE_NUL_STRING = 12,
++NL_ATTR_TYPE_NESTED = 13,
++NL_ATTR_TYPE_NESTED_ARRAY = 14,
++NL_ATTR_TYPE_BITFIELD32 = 15,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum netlink_policy_type_attr {
++NL_POLICY_TYPE_ATTR_UNSPEC = 0,
++NL_POLICY_TYPE_ATTR_TYPE = 1,
++NL_POLICY_TYPE_ATTR_MIN_VALUE_S = 2,
++NL_POLICY_TYPE_ATTR_MAX_VALUE_S = 3,
++NL_POLICY_TYPE_ATTR_MIN_VALUE_U = 4,
++NL_POLICY_TYPE_ATTR_MAX_VALUE_U = 5,
++NL_POLICY_TYPE_ATTR_MIN_LENGTH = 6,
++NL_POLICY_TYPE_ATTR_MAX_LENGTH = 7,
++NL_POLICY_TYPE_ATTR_POLICY_IDX = 8,
++NL_POLICY_TYPE_ATTR_POLICY_MAXTYPE = 9,
++NL_POLICY_TYPE_ATTR_BITFIELD32_MASK = 10,
++NL_POLICY_TYPE_ATTR_PAD = 11,
++NL_POLICY_TYPE_ATTR_MASK = 12,
++__NL_POLICY_TYPE_ATTR_MAX = 13,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_2 {
++IFLA_UNSPEC = 0,
++IFLA_ADDRESS = 1,
++IFLA_BROADCAST = 2,
++IFLA_IFNAME = 3,
++IFLA_MTU = 4,
++IFLA_LINK = 5,
++IFLA_QDISC = 6,
++IFLA_STATS = 7,
++IFLA_COST = 8,
++IFLA_PRIORITY = 9,
++IFLA_MASTER = 10,
++IFLA_WIRELESS = 11,
++IFLA_PROTINFO = 12,
++IFLA_TXQLEN = 13,
++IFLA_MAP = 14,
++IFLA_WEIGHT = 15,
++IFLA_OPERSTATE = 16,
++IFLA_LINKMODE = 17,
++IFLA_LINKINFO = 18,
++IFLA_NET_NS_PID = 19,
++IFLA_IFALIAS = 20,
++IFLA_NUM_VF = 21,
++IFLA_VFINFO_LIST = 22,
++IFLA_STATS64 = 23,
++IFLA_VF_PORTS = 24,
++IFLA_PORT_SELF = 25,
++IFLA_AF_SPEC = 26,
++IFLA_GROUP = 27,
++IFLA_NET_NS_FD = 28,
++IFLA_EXT_MASK = 29,
++IFLA_PROMISCUITY = 30,
++IFLA_NUM_TX_QUEUES = 31,
++IFLA_NUM_RX_QUEUES = 32,
++IFLA_CARRIER = 33,
++IFLA_PHYS_PORT_ID = 34,
++IFLA_CARRIER_CHANGES = 35,
++IFLA_PHYS_SWITCH_ID = 36,
++IFLA_LINK_NETNSID = 37,
++IFLA_PHYS_PORT_NAME = 38,
++IFLA_PROTO_DOWN = 39,
++IFLA_GSO_MAX_SEGS = 40,
++IFLA_GSO_MAX_SIZE = 41,
++IFLA_PAD = 42,
++IFLA_XDP = 43,
++IFLA_EVENT = 44,
++IFLA_NEW_NETNSID = 45,
++IFLA_IF_NETNSID = 46,
++IFLA_CARRIER_UP_COUNT = 47,
++IFLA_CARRIER_DOWN_COUNT = 48,
++IFLA_NEW_IFINDEX = 49,
++IFLA_MIN_MTU = 50,
++IFLA_MAX_MTU = 51,
++IFLA_PROP_LIST = 52,
++IFLA_ALT_IFNAME = 53,
++IFLA_PERM_ADDRESS = 54,
++IFLA_PROTO_DOWN_REASON = 55,
++IFLA_PARENT_DEV_NAME = 56,
++IFLA_PARENT_DEV_BUS_NAME = 57,
++IFLA_GRO_MAX_SIZE = 58,
++IFLA_TSO_MAX_SIZE = 59,
++IFLA_TSO_MAX_SEGS = 60,
++IFLA_ALLMULTI = 61,
++IFLA_DEVLINK_PORT = 62,
++IFLA_GSO_IPV4_MAX_SIZE = 63,
++IFLA_GRO_IPV4_MAX_SIZE = 64,
++__IFLA_MAX = 65,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_3 {
++IFLA_PROTO_DOWN_REASON_UNSPEC = 0,
++IFLA_PROTO_DOWN_REASON_MASK = 1,
++IFLA_PROTO_DOWN_REASON_VALUE = 2,
++__IFLA_PROTO_DOWN_REASON_CNT = 3,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_4 {
++IFLA_INET_UNSPEC = 0,
++IFLA_INET_CONF = 1,
++__IFLA_INET_MAX = 2,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_5 {
++IFLA_INET6_UNSPEC = 0,
++IFLA_INET6_FLAGS = 1,
++IFLA_INET6_CONF = 2,
++IFLA_INET6_STATS = 3,
++IFLA_INET6_MCAST = 4,
++IFLA_INET6_CACHEINFO = 5,
++IFLA_INET6_ICMP6STATS = 6,
++IFLA_INET6_TOKEN = 7,
++IFLA_INET6_ADDR_GEN_MODE = 8,
++IFLA_INET6_RA_MTU = 9,
++__IFLA_INET6_MAX = 10,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum in6_addr_gen_mode {
++IN6_ADDR_GEN_MODE_EUI64 = 0,
++IN6_ADDR_GEN_MODE_NONE = 1,
++IN6_ADDR_GEN_MODE_STABLE_PRIVACY = 2,
++IN6_ADDR_GEN_MODE_RANDOM = 3,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_6 {
++IFLA_BR_UNSPEC = 0,
++IFLA_BR_FORWARD_DELAY = 1,
++IFLA_BR_HELLO_TIME = 2,
++IFLA_BR_MAX_AGE = 3,
++IFLA_BR_AGEING_TIME = 4,
++IFLA_BR_STP_STATE = 5,
++IFLA_BR_PRIORITY = 6,
++IFLA_BR_VLAN_FILTERING = 7,
++IFLA_BR_VLAN_PROTOCOL = 8,
++IFLA_BR_GROUP_FWD_MASK = 9,
++IFLA_BR_ROOT_ID = 10,
++IFLA_BR_BRIDGE_ID = 11,
++IFLA_BR_ROOT_PORT = 12,
++IFLA_BR_ROOT_PATH_COST = 13,
++IFLA_BR_TOPOLOGY_CHANGE = 14,
++IFLA_BR_TOPOLOGY_CHANGE_DETECTED = 15,
++IFLA_BR_HELLO_TIMER = 16,
++IFLA_BR_TCN_TIMER = 17,
++IFLA_BR_TOPOLOGY_CHANGE_TIMER = 18,
++IFLA_BR_GC_TIMER = 19,
++IFLA_BR_GROUP_ADDR = 20,
++IFLA_BR_FDB_FLUSH = 21,
++IFLA_BR_MCAST_ROUTER = 22,
++IFLA_BR_MCAST_SNOOPING = 23,
++IFLA_BR_MCAST_QUERY_USE_IFADDR = 24,
++IFLA_BR_MCAST_QUERIER = 25,
++IFLA_BR_MCAST_HASH_ELASTICITY = 26,
++IFLA_BR_MCAST_HASH_MAX = 27,
++IFLA_BR_MCAST_LAST_MEMBER_CNT = 28,
++IFLA_BR_MCAST_STARTUP_QUERY_CNT = 29,
++IFLA_BR_MCAST_LAST_MEMBER_INTVL = 30,
++IFLA_BR_MCAST_MEMBERSHIP_INTVL = 31,
++IFLA_BR_MCAST_QUERIER_INTVL = 32,
++IFLA_BR_MCAST_QUERY_INTVL = 33,
++IFLA_BR_MCAST_QUERY_RESPONSE_INTVL = 34,
++IFLA_BR_MCAST_STARTUP_QUERY_INTVL = 35,
++IFLA_BR_NF_CALL_IPTABLES = 36,
++IFLA_BR_NF_CALL_IP6TABLES = 37,
++IFLA_BR_NF_CALL_ARPTABLES = 38,
++IFLA_BR_VLAN_DEFAULT_PVID = 39,
++IFLA_BR_PAD = 40,
++IFLA_BR_VLAN_STATS_ENABLED = 41,
++IFLA_BR_MCAST_STATS_ENABLED = 42,
++IFLA_BR_MCAST_IGMP_VERSION = 43,
++IFLA_BR_MCAST_MLD_VERSION = 44,
++IFLA_BR_VLAN_STATS_PER_PORT = 45,
++IFLA_BR_MULTI_BOOLOPT = 46,
++IFLA_BR_MCAST_QUERIER_STATE = 47,
++__IFLA_BR_MAX = 48,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_7 {
++BRIDGE_MODE_UNSPEC = 0,
++BRIDGE_MODE_HAIRPIN = 1,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_8 {
++IFLA_BRPORT_UNSPEC = 0,
++IFLA_BRPORT_STATE = 1,
++IFLA_BRPORT_PRIORITY = 2,
++IFLA_BRPORT_COST = 3,
++IFLA_BRPORT_MODE = 4,
++IFLA_BRPORT_GUARD = 5,
++IFLA_BRPORT_PROTECT = 6,
++IFLA_BRPORT_FAST_LEAVE = 7,
++IFLA_BRPORT_LEARNING = 8,
++IFLA_BRPORT_UNICAST_FLOOD = 9,
++IFLA_BRPORT_PROXYARP = 10,
++IFLA_BRPORT_LEARNING_SYNC = 11,
++IFLA_BRPORT_PROXYARP_WIFI = 12,
++IFLA_BRPORT_ROOT_ID = 13,
++IFLA_BRPORT_BRIDGE_ID = 14,
++IFLA_BRPORT_DESIGNATED_PORT = 15,
++IFLA_BRPORT_DESIGNATED_COST = 16,
++IFLA_BRPORT_ID = 17,
++IFLA_BRPORT_NO = 18,
++IFLA_BRPORT_TOPOLOGY_CHANGE_ACK = 19,
++IFLA_BRPORT_CONFIG_PENDING = 20,
++IFLA_BRPORT_MESSAGE_AGE_TIMER = 21,
++IFLA_BRPORT_FORWARD_DELAY_TIMER = 22,
++IFLA_BRPORT_HOLD_TIMER = 23,
++IFLA_BRPORT_FLUSH = 24,
++IFLA_BRPORT_MULTICAST_ROUTER = 25,
++IFLA_BRPORT_PAD = 26,
++IFLA_BRPORT_MCAST_FLOOD = 27,
++IFLA_BRPORT_MCAST_TO_UCAST = 28,
++IFLA_BRPORT_VLAN_TUNNEL = 29,
++IFLA_BRPORT_BCAST_FLOOD = 30,
++IFLA_BRPORT_GROUP_FWD_MASK = 31,
++IFLA_BRPORT_NEIGH_SUPPRESS = 32,
++IFLA_BRPORT_ISOLATED = 33,
++IFLA_BRPORT_BACKUP_PORT = 34,
++IFLA_BRPORT_MRP_RING_OPEN = 35,
++IFLA_BRPORT_MRP_IN_OPEN = 36,
++IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT = 37,
++IFLA_BRPORT_MCAST_EHT_HOSTS_CNT = 38,
++IFLA_BRPORT_LOCKED = 39,
++IFLA_BRPORT_MAB = 40,
++IFLA_BRPORT_MCAST_N_GROUPS = 41,
++IFLA_BRPORT_MCAST_MAX_GROUPS = 42,
++__IFLA_BRPORT_MAX = 43,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_9 {
++IFLA_INFO_UNSPEC = 0,
++IFLA_INFO_KIND = 1,
++IFLA_INFO_DATA = 2,
++IFLA_INFO_XSTATS = 3,
++IFLA_INFO_SLAVE_KIND = 4,
++IFLA_INFO_SLAVE_DATA = 5,
++__IFLA_INFO_MAX = 6,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_10 {
++IFLA_VLAN_UNSPEC = 0,
++IFLA_VLAN_ID = 1,
++IFLA_VLAN_FLAGS = 2,
++IFLA_VLAN_EGRESS_QOS = 3,
++IFLA_VLAN_INGRESS_QOS = 4,
++IFLA_VLAN_PROTOCOL = 5,
++__IFLA_VLAN_MAX = 6,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_11 {
++IFLA_VLAN_QOS_UNSPEC = 0,
++IFLA_VLAN_QOS_MAPPING = 1,
++__IFLA_VLAN_QOS_MAX = 2,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_12 {
++IFLA_MACVLAN_UNSPEC = 0,
++IFLA_MACVLAN_MODE = 1,
++IFLA_MACVLAN_FLAGS = 2,
++IFLA_MACVLAN_MACADDR_MODE = 3,
++IFLA_MACVLAN_MACADDR = 4,
++IFLA_MACVLAN_MACADDR_DATA = 5,
++IFLA_MACVLAN_MACADDR_COUNT = 6,
++IFLA_MACVLAN_BC_QUEUE_LEN = 7,
++IFLA_MACVLAN_BC_QUEUE_LEN_USED = 8,
++__IFLA_MACVLAN_MAX = 9,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum macvlan_mode {
++MACVLAN_MODE_PRIVATE = 1,
++MACVLAN_MODE_VEPA = 2,
++MACVLAN_MODE_BRIDGE = 4,
++MACVLAN_MODE_PASSTHRU = 8,
++MACVLAN_MODE_SOURCE = 16,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum macvlan_macaddr_mode {
++MACVLAN_MACADDR_ADD = 0,
++MACVLAN_MACADDR_DEL = 1,
++MACVLAN_MACADDR_FLUSH = 2,
++MACVLAN_MACADDR_SET = 3,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_13 {
++IFLA_VRF_UNSPEC = 0,
++IFLA_VRF_TABLE = 1,
++__IFLA_VRF_MAX = 2,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_14 {
++IFLA_VRF_PORT_UNSPEC = 0,
++IFLA_VRF_PORT_TABLE = 1,
++__IFLA_VRF_PORT_MAX = 2,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_15 {
++IFLA_MACSEC_UNSPEC = 0,
++IFLA_MACSEC_SCI = 1,
++IFLA_MACSEC_PORT = 2,
++IFLA_MACSEC_ICV_LEN = 3,
++IFLA_MACSEC_CIPHER_SUITE = 4,
++IFLA_MACSEC_WINDOW = 5,
++IFLA_MACSEC_ENCODING_SA = 6,
++IFLA_MACSEC_ENCRYPT = 7,
++IFLA_MACSEC_PROTECT = 8,
++IFLA_MACSEC_INC_SCI = 9,
++IFLA_MACSEC_ES = 10,
++IFLA_MACSEC_SCB = 11,
++IFLA_MACSEC_REPLAY_PROTECT = 12,
++IFLA_MACSEC_VALIDATION = 13,
++IFLA_MACSEC_PAD = 14,
++IFLA_MACSEC_OFFLOAD = 15,
++__IFLA_MACSEC_MAX = 16,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_16 {
++IFLA_XFRM_UNSPEC = 0,
++IFLA_XFRM_LINK = 1,
++IFLA_XFRM_IF_ID = 2,
++IFLA_XFRM_COLLECT_METADATA = 3,
++__IFLA_XFRM_MAX = 4,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum macsec_validation_type {
++MACSEC_VALIDATE_DISABLED = 0,
++MACSEC_VALIDATE_CHECK = 1,
++MACSEC_VALIDATE_STRICT = 2,
++__MACSEC_VALIDATE_END = 3,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum macsec_offload {
++MACSEC_OFFLOAD_OFF = 0,
++MACSEC_OFFLOAD_PHY = 1,
++MACSEC_OFFLOAD_MAC = 2,
++__MACSEC_OFFLOAD_END = 3,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_17 {
++IFLA_IPVLAN_UNSPEC = 0,
++IFLA_IPVLAN_MODE = 1,
++IFLA_IPVLAN_FLAGS = 2,
++__IFLA_IPVLAN_MAX = 3,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum ipvlan_mode {
++IPVLAN_MODE_L2 = 0,
++IPVLAN_MODE_L3 = 1,
++IPVLAN_MODE_L3S = 2,
++IPVLAN_MODE_MAX = 3,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_18 {
++VNIFILTER_ENTRY_STATS_UNSPEC = 0,
++VNIFILTER_ENTRY_STATS_RX_BYTES = 1,
++VNIFILTER_ENTRY_STATS_RX_PKTS = 2,
++VNIFILTER_ENTRY_STATS_RX_DROPS = 3,
++VNIFILTER_ENTRY_STATS_RX_ERRORS = 4,
++VNIFILTER_ENTRY_STATS_TX_BYTES = 5,
++VNIFILTER_ENTRY_STATS_TX_PKTS = 6,
++VNIFILTER_ENTRY_STATS_TX_DROPS = 7,
++VNIFILTER_ENTRY_STATS_TX_ERRORS = 8,
++VNIFILTER_ENTRY_STATS_PAD = 9,
++__VNIFILTER_ENTRY_STATS_MAX = 10,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_19 {
++VXLAN_VNIFILTER_ENTRY_UNSPEC = 0,
++VXLAN_VNIFILTER_ENTRY_START = 1,
++VXLAN_VNIFILTER_ENTRY_END = 2,
++VXLAN_VNIFILTER_ENTRY_GROUP = 3,
++VXLAN_VNIFILTER_ENTRY_GROUP6 = 4,
++VXLAN_VNIFILTER_ENTRY_STATS = 5,
++__VXLAN_VNIFILTER_ENTRY_MAX = 6,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_20 {
++VXLAN_VNIFILTER_UNSPEC = 0,
++VXLAN_VNIFILTER_ENTRY = 1,
++__VXLAN_VNIFILTER_MAX = 2,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_21 {
++IFLA_VXLAN_UNSPEC = 0,
++IFLA_VXLAN_ID = 1,
++IFLA_VXLAN_GROUP = 2,
++IFLA_VXLAN_LINK = 3,
++IFLA_VXLAN_LOCAL = 4,
++IFLA_VXLAN_TTL = 5,
++IFLA_VXLAN_TOS = 6,
++IFLA_VXLAN_LEARNING = 7,
++IFLA_VXLAN_AGEING = 8,
++IFLA_VXLAN_LIMIT = 9,
++IFLA_VXLAN_PORT_RANGE = 10,
++IFLA_VXLAN_PROXY = 11,
++IFLA_VXLAN_RSC = 12,
++IFLA_VXLAN_L2MISS = 13,
++IFLA_VXLAN_L3MISS = 14,
++IFLA_VXLAN_PORT = 15,
++IFLA_VXLAN_GROUP6 = 16,
++IFLA_VXLAN_LOCAL6 = 17,
++IFLA_VXLAN_UDP_CSUM = 18,
++IFLA_VXLAN_UDP_ZERO_CSUM6_TX = 19,
++IFLA_VXLAN_UDP_ZERO_CSUM6_RX = 20,
++IFLA_VXLAN_REMCSUM_TX = 21,
++IFLA_VXLAN_REMCSUM_RX = 22,
++IFLA_VXLAN_GBP = 23,
++IFLA_VXLAN_REMCSUM_NOPARTIAL = 24,
++IFLA_VXLAN_COLLECT_METADATA = 25,
++IFLA_VXLAN_LABEL = 26,
++IFLA_VXLAN_GPE = 27,
++IFLA_VXLAN_TTL_INHERIT = 28,
++IFLA_VXLAN_DF = 29,
++IFLA_VXLAN_VNIFILTER = 30,
++__IFLA_VXLAN_MAX = 31,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum ifla_vxlan_df {
++VXLAN_DF_UNSET = 0,
++VXLAN_DF_SET = 1,
++VXLAN_DF_INHERIT = 2,
++__VXLAN_DF_END = 3,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_22 {
++IFLA_GENEVE_UNSPEC = 0,
++IFLA_GENEVE_ID = 1,
++IFLA_GENEVE_REMOTE = 2,
++IFLA_GENEVE_TTL = 3,
++IFLA_GENEVE_TOS = 4,
++IFLA_GENEVE_PORT = 5,
++IFLA_GENEVE_COLLECT_METADATA = 6,
++IFLA_GENEVE_REMOTE6 = 7,
++IFLA_GENEVE_UDP_CSUM = 8,
++IFLA_GENEVE_UDP_ZERO_CSUM6_TX = 9,
++IFLA_GENEVE_UDP_ZERO_CSUM6_RX = 10,
++IFLA_GENEVE_LABEL = 11,
++IFLA_GENEVE_TTL_INHERIT = 12,
++IFLA_GENEVE_DF = 13,
++IFLA_GENEVE_INNER_PROTO_INHERIT = 14,
++__IFLA_GENEVE_MAX = 15,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum ifla_geneve_df {
++GENEVE_DF_UNSET = 0,
++GENEVE_DF_SET = 1,
++GENEVE_DF_INHERIT = 2,
++__GENEVE_DF_END = 3,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_23 {
++IFLA_BAREUDP_UNSPEC = 0,
++IFLA_BAREUDP_PORT = 1,
++IFLA_BAREUDP_ETHERTYPE = 2,
++IFLA_BAREUDP_SRCPORT_MIN = 3,
++IFLA_BAREUDP_MULTIPROTO_MODE = 4,
++__IFLA_BAREUDP_MAX = 5,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_24 {
++IFLA_PPP_UNSPEC = 0,
++IFLA_PPP_DEV_FD = 1,
++__IFLA_PPP_MAX = 2,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum ifla_gtp_role {
++GTP_ROLE_GGSN = 0,
++GTP_ROLE_SGSN = 1,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_25 {
++IFLA_GTP_UNSPEC = 0,
++IFLA_GTP_FD0 = 1,
++IFLA_GTP_FD1 = 2,
++IFLA_GTP_PDP_HASHSIZE = 3,
++IFLA_GTP_ROLE = 4,
++IFLA_GTP_CREATE_SOCKETS = 5,
++IFLA_GTP_RESTART_COUNT = 6,
++__IFLA_GTP_MAX = 7,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_26 {
++IFLA_BOND_UNSPEC = 0,
++IFLA_BOND_MODE = 1,
++IFLA_BOND_ACTIVE_SLAVE = 2,
++IFLA_BOND_MIIMON = 3,
++IFLA_BOND_UPDELAY = 4,
++IFLA_BOND_DOWNDELAY = 5,
++IFLA_BOND_USE_CARRIER = 6,
++IFLA_BOND_ARP_INTERVAL = 7,
++IFLA_BOND_ARP_IP_TARGET = 8,
++IFLA_BOND_ARP_VALIDATE = 9,
++IFLA_BOND_ARP_ALL_TARGETS = 10,
++IFLA_BOND_PRIMARY = 11,
++IFLA_BOND_PRIMARY_RESELECT = 12,
++IFLA_BOND_FAIL_OVER_MAC = 13,
++IFLA_BOND_XMIT_HASH_POLICY = 14,
++IFLA_BOND_RESEND_IGMP = 15,
++IFLA_BOND_NUM_PEER_NOTIF = 16,
++IFLA_BOND_ALL_SLAVES_ACTIVE = 17,
++IFLA_BOND_MIN_LINKS = 18,
++IFLA_BOND_LP_INTERVAL = 19,
++IFLA_BOND_PACKETS_PER_SLAVE = 20,
++IFLA_BOND_AD_LACP_RATE = 21,
++IFLA_BOND_AD_SELECT = 22,
++IFLA_BOND_AD_INFO = 23,
++IFLA_BOND_AD_ACTOR_SYS_PRIO = 24,
++IFLA_BOND_AD_USER_PORT_KEY = 25,
++IFLA_BOND_AD_ACTOR_SYSTEM = 26,
++IFLA_BOND_TLB_DYNAMIC_LB = 27,
++IFLA_BOND_PEER_NOTIF_DELAY = 28,
++IFLA_BOND_AD_LACP_ACTIVE = 29,
++IFLA_BOND_MISSED_MAX = 30,
++IFLA_BOND_NS_IP6_TARGET = 31,
++__IFLA_BOND_MAX = 32,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_27 {
++IFLA_BOND_AD_INFO_UNSPEC = 0,
++IFLA_BOND_AD_INFO_AGGREGATOR = 1,
++IFLA_BOND_AD_INFO_NUM_PORTS = 2,
++IFLA_BOND_AD_INFO_ACTOR_KEY = 3,
++IFLA_BOND_AD_INFO_PARTNER_KEY = 4,
++IFLA_BOND_AD_INFO_PARTNER_MAC = 5,
++__IFLA_BOND_AD_INFO_MAX = 6,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_28 {
++IFLA_BOND_SLAVE_UNSPEC = 0,
++IFLA_BOND_SLAVE_STATE = 1,
++IFLA_BOND_SLAVE_MII_STATUS = 2,
++IFLA_BOND_SLAVE_LINK_FAILURE_COUNT = 3,
++IFLA_BOND_SLAVE_PERM_HWADDR = 4,
++IFLA_BOND_SLAVE_QUEUE_ID = 5,
++IFLA_BOND_SLAVE_AD_AGGREGATOR_ID = 6,
++IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE = 7,
++IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE = 8,
++IFLA_BOND_SLAVE_PRIO = 9,
++__IFLA_BOND_SLAVE_MAX = 10,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_29 {
++IFLA_VF_INFO_UNSPEC = 0,
++IFLA_VF_INFO = 1,
++__IFLA_VF_INFO_MAX = 2,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_30 {
++IFLA_VF_UNSPEC = 0,
++IFLA_VF_MAC = 1,
++IFLA_VF_VLAN = 2,
++IFLA_VF_TX_RATE = 3,
++IFLA_VF_SPOOFCHK = 4,
++IFLA_VF_LINK_STATE = 5,
++IFLA_VF_RATE = 6,
++IFLA_VF_RSS_QUERY_EN = 7,
++IFLA_VF_STATS = 8,
++IFLA_VF_TRUST = 9,
++IFLA_VF_IB_NODE_GUID = 10,
++IFLA_VF_IB_PORT_GUID = 11,
++IFLA_VF_VLAN_LIST = 12,
++IFLA_VF_BROADCAST = 13,
++__IFLA_VF_MAX = 14,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_31 {
++IFLA_VF_VLAN_INFO_UNSPEC = 0,
++IFLA_VF_VLAN_INFO = 1,
++__IFLA_VF_VLAN_INFO_MAX = 2,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_32 {
++IFLA_VF_LINK_STATE_AUTO = 0,
++IFLA_VF_LINK_STATE_ENABLE = 1,
++IFLA_VF_LINK_STATE_DISABLE = 2,
++__IFLA_VF_LINK_STATE_MAX = 3,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_33 {
++IFLA_VF_STATS_RX_PACKETS = 0,
++IFLA_VF_STATS_TX_PACKETS = 1,
++IFLA_VF_STATS_RX_BYTES = 2,
++IFLA_VF_STATS_TX_BYTES = 3,
++IFLA_VF_STATS_BROADCAST = 4,
++IFLA_VF_STATS_MULTICAST = 5,
++IFLA_VF_STATS_PAD = 6,
++IFLA_VF_STATS_RX_DROPPED = 7,
++IFLA_VF_STATS_TX_DROPPED = 8,
++__IFLA_VF_STATS_MAX = 9,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_34 {
++IFLA_VF_PORT_UNSPEC = 0,
++IFLA_VF_PORT = 1,
++__IFLA_VF_PORT_MAX = 2,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_35 {
++IFLA_PORT_UNSPEC = 0,
++IFLA_PORT_VF = 1,
++IFLA_PORT_PROFILE = 2,
++IFLA_PORT_VSI_TYPE = 3,
++IFLA_PORT_INSTANCE_UUID = 4,
++IFLA_PORT_HOST_UUID = 5,
++IFLA_PORT_REQUEST = 6,
++IFLA_PORT_RESPONSE = 7,
++__IFLA_PORT_MAX = 8,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_36 {
++PORT_REQUEST_PREASSOCIATE = 0,
++PORT_REQUEST_PREASSOCIATE_RR = 1,
++PORT_REQUEST_ASSOCIATE = 2,
++PORT_REQUEST_DISASSOCIATE = 3,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_37 {
++PORT_VDP_RESPONSE_SUCCESS = 0,
++PORT_VDP_RESPONSE_INVALID_FORMAT = 1,
++PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES = 2,
++PORT_VDP_RESPONSE_UNUSED_VTID = 3,
++PORT_VDP_RESPONSE_VTID_VIOLATION = 4,
++PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION = 5,
++PORT_VDP_RESPONSE_OUT_OF_SYNC = 6,
++PORT_PROFILE_RESPONSE_SUCCESS = 256,
++PORT_PROFILE_RESPONSE_INPROGRESS = 257,
++PORT_PROFILE_RESPONSE_INVALID = 258,
++PORT_PROFILE_RESPONSE_BADSTATE = 259,
++PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES = 260,
++PORT_PROFILE_RESPONSE_ERROR = 261,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_38 {
++IFLA_IPOIB_UNSPEC = 0,
++IFLA_IPOIB_PKEY = 1,
++IFLA_IPOIB_MODE = 2,
++IFLA_IPOIB_UMCAST = 3,
++__IFLA_IPOIB_MAX = 4,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_39 {
++IPOIB_MODE_DATAGRAM = 0,
++IPOIB_MODE_CONNECTED = 1,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_40 {
++HSR_PROTOCOL_HSR = 0,
++HSR_PROTOCOL_PRP = 1,
++HSR_PROTOCOL_MAX = 2,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_41 {
++IFLA_HSR_UNSPEC = 0,
++IFLA_HSR_SLAVE1 = 1,
++IFLA_HSR_SLAVE2 = 2,
++IFLA_HSR_MULTICAST_SPEC = 3,
++IFLA_HSR_SUPERVISION_ADDR = 4,
++IFLA_HSR_SEQ_NR = 5,
++IFLA_HSR_VERSION = 6,
++IFLA_HSR_PROTOCOL = 7,
++__IFLA_HSR_MAX = 8,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_42 {
++IFLA_STATS_UNSPEC = 0,
++IFLA_STATS_LINK_64 = 1,
++IFLA_STATS_LINK_XSTATS = 2,
++IFLA_STATS_LINK_XSTATS_SLAVE = 3,
++IFLA_STATS_LINK_OFFLOAD_XSTATS = 4,
++IFLA_STATS_AF_SPEC = 5,
++__IFLA_STATS_MAX = 6,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_43 {
++IFLA_STATS_GETSET_UNSPEC = 0,
++IFLA_STATS_GET_FILTERS = 1,
++IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS = 2,
++__IFLA_STATS_GETSET_MAX = 3,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_44 {
++LINK_XSTATS_TYPE_UNSPEC = 0,
++LINK_XSTATS_TYPE_BRIDGE = 1,
++LINK_XSTATS_TYPE_BOND = 2,
++__LINK_XSTATS_TYPE_MAX = 3,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_45 {
++IFLA_OFFLOAD_XSTATS_UNSPEC = 0,
++IFLA_OFFLOAD_XSTATS_CPU_HIT = 1,
++IFLA_OFFLOAD_XSTATS_HW_S_INFO = 2,
++IFLA_OFFLOAD_XSTATS_L3_STATS = 3,
++__IFLA_OFFLOAD_XSTATS_MAX = 4,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_46 {
++IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC = 0,
++IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST = 1,
++IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED = 2,
++__IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX = 3,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_47 {
++XDP_ATTACHED_NONE = 0,
++XDP_ATTACHED_DRV = 1,
++XDP_ATTACHED_SKB = 2,
++XDP_ATTACHED_HW = 3,
++XDP_ATTACHED_MULTI = 4,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_48 {
++IFLA_XDP_UNSPEC = 0,
++IFLA_XDP_FD = 1,
++IFLA_XDP_ATTACHED = 2,
++IFLA_XDP_FLAGS = 3,
++IFLA_XDP_PROG_ID = 4,
++IFLA_XDP_DRV_PROG_ID = 5,
++IFLA_XDP_SKB_PROG_ID = 6,
++IFLA_XDP_HW_PROG_ID = 7,
++IFLA_XDP_EXPECTED_FD = 8,
++__IFLA_XDP_MAX = 9,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_49 {
++IFLA_EVENT_NONE = 0,
++IFLA_EVENT_REBOOT = 1,
++IFLA_EVENT_FEATURES = 2,
++IFLA_EVENT_BONDING_FAILOVER = 3,
++IFLA_EVENT_NOTIFY_PEERS = 4,
++IFLA_EVENT_IGMP_RESEND = 5,
++IFLA_EVENT_BONDING_OPTIONS = 6,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_50 {
++IFLA_TUN_UNSPEC = 0,
++IFLA_TUN_OWNER = 1,
++IFLA_TUN_GROUP = 2,
++IFLA_TUN_TYPE = 3,
++IFLA_TUN_PI = 4,
++IFLA_TUN_VNET_HDR = 5,
++IFLA_TUN_PERSIST = 6,
++IFLA_TUN_MULTI_QUEUE = 7,
++IFLA_TUN_NUM_QUEUES = 8,
++IFLA_TUN_NUM_DISABLED_QUEUES = 9,
++__IFLA_TUN_MAX = 10,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_51 {
++IFLA_RMNET_UNSPEC = 0,
++IFLA_RMNET_MUX_ID = 1,
++IFLA_RMNET_FLAGS = 2,
++__IFLA_RMNET_MAX = 3,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_52 {
++IFLA_MCTP_UNSPEC = 0,
++IFLA_MCTP_NET = 1,
++__IFLA_MCTP_MAX = 2,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_53 {
++IFLA_DSA_UNSPEC = 0,
++IFLA_DSA_MASTER = 1,
++__IFLA_DSA_MAX = 2,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_54 {
++IFA_UNSPEC = 0,
++IFA_ADDRESS = 1,
++IFA_LOCAL = 2,
++IFA_LABEL = 3,
++IFA_BROADCAST = 4,
++IFA_ANYCAST = 5,
++IFA_CACHEINFO = 6,
++IFA_MULTICAST = 7,
++IFA_FLAGS = 8,
++IFA_RT_PRIORITY = 9,
++IFA_TARGET_NETNSID = 10,
++IFA_PROTO = 11,
++__IFA_MAX = 12,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_55 {
++NDA_UNSPEC = 0,
++NDA_DST = 1,
++NDA_LLADDR = 2,
++NDA_CACHEINFO = 3,
++NDA_PROBES = 4,
++NDA_VLAN = 5,
++NDA_PORT = 6,
++NDA_VNI = 7,
++NDA_IFINDEX = 8,
++NDA_MASTER = 9,
++NDA_LINK_NETNSID = 10,
++NDA_SRC_VNI = 11,
++NDA_PROTOCOL = 12,
++NDA_NH_ID = 13,
++NDA_FDB_EXT_ATTRS = 14,
++NDA_FLAGS_EXT = 15,
++NDA_NDM_STATE_MASK = 16,
++NDA_NDM_FLAGS_MASK = 17,
++__NDA_MAX = 18,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_56 {
++NDTPA_UNSPEC = 0,
++NDTPA_IFINDEX = 1,
++NDTPA_REFCNT = 2,
++NDTPA_REACHABLE_TIME = 3,
++NDTPA_BASE_REACHABLE_TIME = 4,
++NDTPA_RETRANS_TIME = 5,
++NDTPA_GC_STALETIME = 6,
++NDTPA_DELAY_PROBE_TIME = 7,
++NDTPA_QUEUE_LEN = 8,
++NDTPA_APP_PROBES = 9,
++NDTPA_UCAST_PROBES = 10,
++NDTPA_MCAST_PROBES = 11,
++NDTPA_ANYCAST_DELAY = 12,
++NDTPA_PROXY_DELAY = 13,
++NDTPA_PROXY_QLEN = 14,
++NDTPA_LOCKTIME = 15,
++NDTPA_QUEUE_LENBYTES = 16,
++NDTPA_MCAST_REPROBES = 17,
++NDTPA_PAD = 18,
++NDTPA_INTERVAL_PROBE_TIME_MS = 19,
++__NDTPA_MAX = 20,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_57 {
++NDTA_UNSPEC = 0,
++NDTA_NAME = 1,
++NDTA_THRESH1 = 2,
++NDTA_THRESH2 = 3,
++NDTA_THRESH3 = 4,
++NDTA_CONFIG = 5,
++NDTA_PARMS = 6,
++NDTA_STATS = 7,
++NDTA_GC_INTERVAL = 8,
++NDTA_PAD = 9,
++__NDTA_MAX = 10,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_58 {
++FDB_NOTIFY_BIT = 1,
++FDB_NOTIFY_INACTIVE_BIT = 2,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_59 {
++NFEA_UNSPEC = 0,
++NFEA_ACTIVITY_NOTIFY = 1,
++NFEA_DONT_REFRESH = 2,
++__NFEA_MAX = 3,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_60 {
++RTM_BASE = 16,
++RTM_DELLINK = 17,
++RTM_GETLINK = 18,
++RTM_SETLINK = 19,
++RTM_NEWADDR = 20,
++RTM_DELADDR = 21,
++RTM_GETADDR = 22,
++RTM_NEWROUTE = 24,
++RTM_DELROUTE = 25,
++RTM_GETROUTE = 26,
++RTM_NEWNEIGH = 28,
++RTM_DELNEIGH = 29,
++RTM_GETNEIGH = 30,
++RTM_NEWRULE = 32,
++RTM_DELRULE = 33,
++RTM_GETRULE = 34,
++RTM_NEWQDISC = 36,
++RTM_DELQDISC = 37,
++RTM_GETQDISC = 38,
++RTM_NEWTCLASS = 40,
++RTM_DELTCLASS = 41,
++RTM_GETTCLASS = 42,
++RTM_NEWTFILTER = 44,
++RTM_DELTFILTER = 45,
++RTM_GETTFILTER = 46,
++RTM_NEWACTION = 48,
++RTM_DELACTION = 49,
++RTM_GETACTION = 50,
++RTM_NEWPREFIX = 52,
++RTM_GETMULTICAST = 58,
++RTM_GETANYCAST = 62,
++RTM_NEWNEIGHTBL = 64,
++RTM_GETNEIGHTBL = 66,
++RTM_SETNEIGHTBL = 67,
++RTM_NEWNDUSEROPT = 68,
++RTM_NEWADDRLABEL = 72,
++RTM_DELADDRLABEL = 73,
++RTM_GETADDRLABEL = 74,
++RTM_GETDCB = 78,
++RTM_SETDCB = 79,
++RTM_NEWNETCONF = 80,
++RTM_DELNETCONF = 81,
++RTM_GETNETCONF = 82,
++RTM_NEWMDB = 84,
++RTM_DELMDB = 85,
++RTM_GETMDB = 86,
++RTM_NEWNSID = 88,
++RTM_DELNSID = 89,
++RTM_GETNSID = 90,
++RTM_NEWSTATS = 92,
++RTM_GETSTATS = 94,
++RTM_SETSTATS = 95,
++RTM_NEWCACHEREPORT = 96,
++RTM_NEWCHAIN = 100,
++RTM_DELCHAIN = 101,
++RTM_GETCHAIN = 102,
++RTM_NEWNEXTHOP = 104,
++RTM_DELNEXTHOP = 105,
++RTM_GETNEXTHOP = 106,
++RTM_NEWLINKPROP = 108,
++RTM_DELLINKPROP = 109,
++RTM_GETLINKPROP = 110,
++RTM_NEWVLAN = 112,
++RTM_DELVLAN = 113,
++RTM_GETVLAN = 114,
++RTM_NEWNEXTHOPBUCKET = 116,
++RTM_DELNEXTHOPBUCKET = 117,
++RTM_GETNEXTHOPBUCKET = 118,
++RTM_NEWTUNNEL = 120,
++RTM_DELTUNNEL = 121,
++RTM_GETTUNNEL = 122,
++__RTM_MAX = 123,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_61 {
++RTN_UNSPEC = 0,
++RTN_UNICAST = 1,
++RTN_LOCAL = 2,
++RTN_BROADCAST = 3,
++RTN_ANYCAST = 4,
++RTN_MULTICAST = 5,
++RTN_BLACKHOLE = 6,
++RTN_UNREACHABLE = 7,
++RTN_PROHIBIT = 8,
++RTN_THROW = 9,
++RTN_NAT = 10,
++RTN_XRESOLVE = 11,
++__RTN_MAX = 12,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum rt_scope_t {
++RT_SCOPE_UNIVERSE = 0,
++RT_SCOPE_SITE = 200,
++RT_SCOPE_LINK = 253,
++RT_SCOPE_HOST = 254,
++RT_SCOPE_NOWHERE = 255,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum rt_class_t {
++RT_TABLE_UNSPEC = 0,
++RT_TABLE_COMPAT = 252,
++RT_TABLE_DEFAULT = 253,
++RT_TABLE_MAIN = 254,
++RT_TABLE_LOCAL = 255,
++RT_TABLE_MAX = 4294967295,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum rtattr_type_t {
++RTA_UNSPEC = 0,
++RTA_DST = 1,
++RTA_SRC = 2,
++RTA_IIF = 3,
++RTA_OIF = 4,
++RTA_GATEWAY = 5,
++RTA_PRIORITY = 6,
++RTA_PREFSRC = 7,
++RTA_METRICS = 8,
++RTA_MULTIPATH = 9,
++RTA_PROTOINFO = 10,
++RTA_FLOW = 11,
++RTA_CACHEINFO = 12,
++RTA_SESSION = 13,
++RTA_MP_ALGO = 14,
++RTA_TABLE = 15,
++RTA_MARK = 16,
++RTA_MFC_STATS = 17,
++RTA_VIA = 18,
++RTA_NEWDST = 19,
++RTA_PREF = 20,
++RTA_ENCAP_TYPE = 21,
++RTA_ENCAP = 22,
++RTA_EXPIRES = 23,
++RTA_PAD = 24,
++RTA_UID = 25,
++RTA_TTL_PROPAGATE = 26,
++RTA_IP_PROTO = 27,
++RTA_SPORT = 28,
++RTA_DPORT = 29,
++RTA_NH_ID = 30,
++__RTA_MAX = 31,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_62 {
++RTAX_UNSPEC = 0,
++RTAX_LOCK = 1,
++RTAX_MTU = 2,
++RTAX_WINDOW = 3,
++RTAX_RTT = 4,
++RTAX_RTTVAR = 5,
++RTAX_SSTHRESH = 6,
++RTAX_CWND = 7,
++RTAX_ADVMSS = 8,
++RTAX_REORDERING = 9,
++RTAX_HOPLIMIT = 10,
++RTAX_INITCWND = 11,
++RTAX_FEATURES = 12,
++RTAX_RTO_MIN = 13,
++RTAX_INITRWND = 14,
++RTAX_QUICKACK = 15,
++RTAX_CC_ALGO = 16,
++RTAX_FASTOPEN_NO_COOKIE = 17,
++__RTAX_MAX = 18,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_63 {
++PREFIX_UNSPEC = 0,
++PREFIX_ADDRESS = 1,
++PREFIX_CACHEINFO = 2,
++__PREFIX_MAX = 3,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_64 {
++TCA_UNSPEC = 0,
++TCA_KIND = 1,
++TCA_OPTIONS = 2,
++TCA_STATS = 3,
++TCA_XSTATS = 4,
++TCA_RATE = 5,
++TCA_FCNT = 6,
++TCA_STATS2 = 7,
++TCA_STAB = 8,
++TCA_PAD = 9,
++TCA_DUMP_INVISIBLE = 10,
++TCA_CHAIN = 11,
++TCA_HW_OFFLOAD = 12,
++TCA_INGRESS_BLOCK = 13,
++TCA_EGRESS_BLOCK = 14,
++TCA_DUMP_FLAGS = 15,
++TCA_EXT_WARN_MSG = 16,
++__TCA_MAX = 17,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_65 {
++NDUSEROPT_UNSPEC = 0,
++NDUSEROPT_SRCADDR = 1,
++__NDUSEROPT_MAX = 2,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum rtnetlink_groups {
++RTNLGRP_NONE = 0,
++RTNLGRP_LINK = 1,
++RTNLGRP_NOTIFY = 2,
++RTNLGRP_NEIGH = 3,
++RTNLGRP_TC = 4,
++RTNLGRP_IPV4_IFADDR = 5,
++RTNLGRP_IPV4_MROUTE = 6,
++RTNLGRP_IPV4_ROUTE = 7,
++RTNLGRP_IPV4_RULE = 8,
++RTNLGRP_IPV6_IFADDR = 9,
++RTNLGRP_IPV6_MROUTE = 10,
++RTNLGRP_IPV6_ROUTE = 11,
++RTNLGRP_IPV6_IFINFO = 12,
++RTNLGRP_DECnet_IFADDR = 13,
++RTNLGRP_NOP2 = 14,
++RTNLGRP_DECnet_ROUTE = 15,
++RTNLGRP_DECnet_RULE = 16,
++RTNLGRP_NOP4 = 17,
++RTNLGRP_IPV6_PREFIX = 18,
++RTNLGRP_IPV6_RULE = 19,
++RTNLGRP_ND_USEROPT = 20,
++RTNLGRP_PHONET_IFADDR = 21,
++RTNLGRP_PHONET_ROUTE = 22,
++RTNLGRP_DCB = 23,
++RTNLGRP_IPV4_NETCONF = 24,
++RTNLGRP_IPV6_NETCONF = 25,
++RTNLGRP_MDB = 26,
++RTNLGRP_MPLS_ROUTE = 27,
++RTNLGRP_NSID = 28,
++RTNLGRP_MPLS_NETCONF = 29,
++RTNLGRP_IPV4_MROUTE_R = 30,
++RTNLGRP_IPV6_MROUTE_R = 31,
++RTNLGRP_NEXTHOP = 32,
++RTNLGRP_BRVLAN = 33,
++RTNLGRP_MCTP_IFADDR = 34,
++RTNLGRP_TUNNEL = 35,
++RTNLGRP_STATS = 36,
++__RTNLGRP_MAX = 37,
++}
++#[repr(u32)]
++#[non_exhaustive]
++#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
++pub enum _bindgen_ty_66 {
++TCA_ROOT_UNSPEC = 0,
++TCA_ROOT_TAB = 1,
++TCA_ROOT_FLAGS = 2,
++TCA_ROOT_COUNT = 3,
++TCA_ROOT_TIME_DELTA = 4,
++TCA_ROOT_EXT_WARN_MSG = 5,
++__TCA_ROOT_MAX = 6,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub union __kernel_sockaddr_storage__bindgen_ty_1 {
++pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1,
++pub __align: *mut crate::ctypes::c_void,
++}
++#[repr(C)]
++#[derive(Copy, Clone)]
++pub union rta_session__bindgen_ty_1 {
++pub ports: rta_session__bindgen_ty_1__bindgen_ty_1,
++pub icmpt: rta_session__bindgen_ty_1__bindgen_ty_2,
++pub spi: __u32,
++}
++impl<T> __IncompleteArrayField<T> {
++#[inline]
++pub const fn new() -> Self {
++__IncompleteArrayField(::core::marker::PhantomData, [])
++}
++#[inline]
++pub fn as_ptr(&self) -> *const T {
++self as *const _ as *const T
++}
++#[inline]
++pub fn as_mut_ptr(&mut self) -> *mut T {
++self as *mut _ as *mut T
++}
++#[inline]
++pub unsafe fn as_slice(&self, len: usize) -> &[T] {
++::core::slice::from_raw_parts(self.as_ptr(), len)
++}
++#[inline]
++pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
++::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
++}
++}
++impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
++fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
++fmt.write_str("__IncompleteArrayField")
++}
++}
++impl nlmsgerr_attrs {
++pub const NLMSGERR_ATTR_MAX: nlmsgerr_attrs = nlmsgerr_attrs::NLMSGERR_ATTR_MISS_NEST;
++}
++impl netlink_policy_type_attr {
++pub const NL_POLICY_TYPE_ATTR_MAX: netlink_policy_type_attr = netlink_policy_type_attr::NL_POLICY_TYPE_ATTR_MASK;
++}
++impl macsec_validation_type {
++pub const MACSEC_VALIDATE_MAX: macsec_validation_type = macsec_validation_type::MACSEC_VALIDATE_STRICT;
++}
++impl macsec_offload {
++pub const MACSEC_OFFLOAD_MAX: macsec_offload = macsec_offload::MACSEC_OFFLOAD_MAC;
++}
++impl ifla_vxlan_df {
++pub const VXLAN_DF_MAX: ifla_vxlan_df = ifla_vxlan_df::VXLAN_DF_INHERIT;
++}
++impl ifla_geneve_df {
++pub const GENEVE_DF_MAX: ifla_geneve_df = ifla_geneve_df::GENEVE_DF_INHERIT;
++}
+diff --git a/vendor/linux-raw-sys-0.4.14/src/sw_64/prctl.rs b/vendor/linux-raw-sys-0.4.14/src/sw_64/prctl.rs
+new file mode 100644
+index 00000000000..ce008a34bf8
+--- /dev/null
++++ b/vendor/linux-raw-sys-0.4.14/src/sw_64/prctl.rs
+@@ -0,0 +1,231 @@
++/* automatically generated by rust-bindgen 0.66.1 */
++
++pub type __s8 = crate::ctypes::c_schar;
++pub type __u8 = crate::ctypes::c_uchar;
++pub type __s16 = crate::ctypes::c_short;
++pub type __u16 = crate::ctypes::c_ushort;
++pub type __s32 = crate::ctypes::c_int;
++pub type __u32 = crate::ctypes::c_uint;
++pub type __s64 = crate::ctypes::c_long;
++pub type __u64 = crate::ctypes::c_ulong;
++pub type __kernel_key_t = crate::ctypes::c_int;
++pub type __kernel_mqd_t = crate::ctypes::c_int;
++pub type __kernel_daddr_t = crate::ctypes::c_long;
++pub type __kernel_long_t = crate::ctypes::c_long;
++pub type __kernel_ulong_t = crate::ctypes::c_ulong;
++pub type __kernel_ino_t = __kernel_ulong_t;
++pub type __kernel_mode_t = crate::ctypes::c_uint;
++pub type __kernel_pid_t = crate::ctypes::c_int;
++pub type __kernel_ipc_pid_t = crate::ctypes::c_int;
++pub type __kernel_uid_t = crate::ctypes::c_uint;
++pub type __kernel_gid_t = crate::ctypes::c_uint;
++pub type __kernel_suseconds_t = __kernel_long_t;
++pub type __kernel_uid32_t = crate::ctypes::c_uint;
++pub type __kernel_gid32_t = crate::ctypes::c_uint;
++pub type __kernel_old_uid_t = __kernel_uid_t;
++pub type __kernel_old_gid_t = __kernel_gid_t;
++pub type __kernel_old_dev_t = crate::ctypes::c_uint;
++pub type __kernel_size_t = __kernel_ulong_t;
++pub type __kernel_ssize_t = __kernel_long_t;
++pub type __kernel_ptrdiff_t = __kernel_long_t;
++pub type __kernel_off_t = __kernel_long_t;
++pub type __kernel_loff_t = crate::ctypes::c_longlong;
++pub type __kernel_old_time_t = __kernel_long_t;
++pub type __kernel_time_t = __kernel_long_t;
++pub type __kernel_time64_t = crate::ctypes::c_longlong;
++pub type __kernel_clock_t = __kernel_long_t;
++pub type __kernel_timer_t = crate::ctypes::c_int;
++pub type __kernel_clockid_t = crate::ctypes::c_int;
++pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
++pub type __kernel_uid16_t = crate::ctypes::c_ushort;
++pub type __kernel_gid16_t = crate::ctypes::c_ushort;
++pub type __le16 = __u16;
++pub type __be16 = __u16;
++pub type __le32 = __u32;
++pub type __be32 = __u32;
++pub type __le64 = __u64;
++pub type __be64 = __u64;
++pub type __sum16 = __u16;
++pub type __wsum = __u32;
++pub type __poll_t = crate::ctypes::c_uint;
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct prctl_mm_map {
++pub start_code: __u64,
++pub end_code: __u64,
++pub start_data: __u64,
++pub end_data: __u64,
++pub start_brk: __u64,
++pub brk: __u64,
++pub start_stack: __u64,
++pub arg_start: __u64,
++pub arg_end: __u64,
++pub env_start: __u64,
++pub env_end: __u64,
++pub auxv: *mut __u64,
++pub auxv_size: __u32,
++pub exe_fd: __u32,
++}
++pub const _MIPS_ISA_MIPS1: u32 = 1;
++pub const _MIPS_ISA_MIPS2: u32 = 2;
++pub const _MIPS_ISA_MIPS3: u32 = 3;
++pub const _MIPS_ISA_MIPS4: u32 = 4;
++pub const _MIPS_ISA_MIPS5: u32 = 5;
++pub const _MIPS_ISA_MIPS32: u32 = 6;
++pub const _MIPS_ISA_MIPS64: u32 = 7;
++pub const _MIPS_SIM_ABI32: u32 = 1;
++pub const _MIPS_SIM_NABI32: u32 = 2;
++pub const _MIPS_SIM_ABI64: u32 = 3;
++pub const PR_SET_PDEATHSIG: u32 = 1;
++pub const PR_GET_PDEATHSIG: u32 = 2;
++pub const PR_GET_DUMPABLE: u32 = 3;
++pub const PR_SET_DUMPABLE: u32 = 4;
++pub const PR_GET_UNALIGN: u32 = 5;
++pub const PR_SET_UNALIGN: u32 = 6;
++pub const PR_UNALIGN_NOPRINT: u32 = 1;
++pub const PR_UNALIGN_SIGBUS: u32 = 2;
++pub const PR_GET_KEEPCAPS: u32 = 7;
++pub const PR_SET_KEEPCAPS: u32 = 8;
++pub const PR_GET_FPEMU: u32 = 9;
++pub const PR_SET_FPEMU: u32 = 10;
++pub const PR_FPEMU_NOPRINT: u32 = 1;
++pub const PR_FPEMU_SIGFPE: u32 = 2;
++pub const PR_GET_FPEXC: u32 = 11;
++pub const PR_SET_FPEXC: u32 = 12;
++pub const PR_FP_EXC_SW_ENABLE: u32 = 128;
++pub const PR_FP_EXC_DIV: u32 = 65536;
++pub const PR_FP_EXC_OVF: u32 = 131072;
++pub const PR_FP_EXC_UND: u32 = 262144;
++pub const PR_FP_EXC_RES: u32 = 524288;
++pub const PR_FP_EXC_INV: u32 = 1048576;
++pub const PR_FP_EXC_DISABLED: u32 = 0;
++pub const PR_FP_EXC_NONRECOV: u32 = 1;
++pub const PR_FP_EXC_ASYNC: u32 = 2;
++pub const PR_FP_EXC_PRECISE: u32 = 3;
++pub const PR_GET_TIMING: u32 = 13;
++pub const PR_SET_TIMING: u32 = 14;
++pub const PR_TIMING_STATISTICAL: u32 = 0;
++pub const PR_TIMING_TIMESTAMP: u32 = 1;
++pub const PR_SET_NAME: u32 = 15;
++pub const PR_GET_NAME: u32 = 16;
++pub const PR_GET_ENDIAN: u32 = 19;
++pub const PR_SET_ENDIAN: u32 = 20;
++pub const PR_ENDIAN_BIG: u32 = 0;
++pub const PR_ENDIAN_LITTLE: u32 = 1;
++pub const PR_ENDIAN_PPC_LITTLE: u32 = 2;
++pub const PR_GET_SECCOMP: u32 = 21;
++pub const PR_SET_SECCOMP: u32 = 22;
++pub const PR_CAPBSET_READ: u32 = 23;
++pub const PR_CAPBSET_DROP: u32 = 24;
++pub const PR_GET_TSC: u32 = 25;
++pub const PR_SET_TSC: u32 = 26;
++pub const PR_TSC_ENABLE: u32 = 1;
++pub const PR_TSC_SIGSEGV: u32 = 2;
++pub const PR_GET_SECUREBITS: u32 = 27;
++pub const PR_SET_SECUREBITS: u32 = 28;
++pub const PR_SET_TIMERSLACK: u32 = 29;
++pub const PR_GET_TIMERSLACK: u32 = 30;
++pub const PR_TASK_PERF_EVENTS_DISABLE: u32 = 31;
++pub const PR_TASK_PERF_EVENTS_ENABLE: u32 = 32;
++pub const PR_MCE_KILL: u32 = 33;
++pub const PR_MCE_KILL_CLEAR: u32 = 0;
++pub const PR_MCE_KILL_SET: u32 = 1;
++pub const PR_MCE_KILL_LATE: u32 = 0;
++pub const PR_MCE_KILL_EARLY: u32 = 1;
++pub const PR_MCE_KILL_DEFAULT: u32 = 2;
++pub const PR_MCE_KILL_GET: u32 = 34;
++pub const PR_SET_MM: u32 = 35;
++pub const PR_SET_MM_START_CODE: u32 = 1;
++pub const PR_SET_MM_END_CODE: u32 = 2;
++pub const PR_SET_MM_START_DATA: u32 = 3;
++pub const PR_SET_MM_END_DATA: u32 = 4;
++pub const PR_SET_MM_START_STACK: u32 = 5;
++pub const PR_SET_MM_START_BRK: u32 = 6;
++pub const PR_SET_MM_BRK: u32 = 7;
++pub const PR_SET_MM_ARG_START: u32 = 8;
++pub const PR_SET_MM_ARG_END: u32 = 9;
++pub const PR_SET_MM_ENV_START: u32 = 10;
++pub const PR_SET_MM_ENV_END: u32 = 11;
++pub const PR_SET_MM_AUXV: u32 = 12;
++pub const PR_SET_MM_EXE_FILE: u32 = 13;
++pub const PR_SET_MM_MAP: u32 = 14;
++pub const PR_SET_MM_MAP_SIZE: u32 = 15;
++pub const PR_SET_PTRACER: u32 = 1499557217;
++pub const PR_SET_CHILD_SUBREAPER: u32 = 36;
++pub const PR_GET_CHILD_SUBREAPER: u32 = 37;
++pub const PR_SET_NO_NEW_PRIVS: u32 = 38;
++pub const PR_GET_NO_NEW_PRIVS: u32 = 39;
++pub const PR_GET_TID_ADDRESS: u32 = 40;
++pub const PR_SET_THP_DISABLE: u32 = 41;
++pub const PR_GET_THP_DISABLE: u32 = 42;
++pub const PR_MPX_ENABLE_MANAGEMENT: u32 = 43;
++pub const PR_MPX_DISABLE_MANAGEMENT: u32 = 44;
++pub const PR_SET_FP_MODE: u32 = 45;
++pub const PR_GET_FP_MODE: u32 = 46;
++pub const PR_FP_MODE_FR: u32 = 1;
++pub const PR_FP_MODE_FRE: u32 = 2;
++pub const PR_CAP_AMBIENT: u32 = 47;
++pub const PR_CAP_AMBIENT_IS_SET: u32 = 1;
++pub const PR_CAP_AMBIENT_RAISE: u32 = 2;
++pub const PR_CAP_AMBIENT_LOWER: u32 = 3;
++pub const PR_CAP_AMBIENT_CLEAR_ALL: u32 = 4;
++pub const PR_SVE_SET_VL: u32 = 50;
++pub const PR_SVE_SET_VL_ONEXEC: u32 = 262144;
++pub const PR_SVE_GET_VL: u32 = 51;
++pub const PR_SVE_VL_LEN_MASK: u32 = 65535;
++pub const PR_SVE_VL_INHERIT: u32 = 131072;
++pub const PR_GET_SPECULATION_CTRL: u32 = 52;
++pub const PR_SET_SPECULATION_CTRL: u32 = 53;
++pub const PR_SPEC_STORE_BYPASS: u32 = 0;
++pub const PR_SPEC_INDIRECT_BRANCH: u32 = 1;
++pub const PR_SPEC_L1D_FLUSH: u32 = 2;
++pub const PR_SPEC_NOT_AFFECTED: u32 = 0;
++pub const PR_SPEC_PRCTL: u32 = 1;
++pub const PR_SPEC_ENABLE: u32 = 2;
++pub const PR_SPEC_DISABLE: u32 = 4;
++pub const PR_SPEC_FORCE_DISABLE: u32 = 8;
++pub const PR_SPEC_DISABLE_NOEXEC: u32 = 16;
++pub const PR_PAC_RESET_KEYS: u32 = 54;
++pub const PR_PAC_APIAKEY: u32 = 1;
++pub const PR_PAC_APIBKEY: u32 = 2;
++pub const PR_PAC_APDAKEY: u32 = 4;
++pub const PR_PAC_APDBKEY: u32 = 8;
++pub const PR_PAC_APGAKEY: u32 = 16;
++pub const PR_SET_TAGGED_ADDR_CTRL: u32 = 55;
++pub const PR_GET_TAGGED_ADDR_CTRL: u32 = 56;
++pub const PR_TAGGED_ADDR_ENABLE: u32 = 1;
++pub const PR_MTE_TCF_NONE: u32 = 0;
++pub const PR_MTE_TCF_SYNC: u32 = 2;
++pub const PR_MTE_TCF_ASYNC: u32 = 4;
++pub const PR_MTE_TCF_MASK: u32 = 6;
++pub const PR_MTE_TAG_SHIFT: u32 = 3;
++pub const PR_MTE_TAG_MASK: u32 = 524280;
++pub const PR_MTE_TCF_SHIFT: u32 = 1;
++pub const PR_SET_IO_FLUSHER: u32 = 57;
++pub const PR_GET_IO_FLUSHER: u32 = 58;
++pub const PR_SET_SYSCALL_USER_DISPATCH: u32 = 59;
++pub const PR_SYS_DISPATCH_OFF: u32 = 0;
++pub const PR_SYS_DISPATCH_ON: u32 = 1;
++pub const SYSCALL_DISPATCH_FILTER_ALLOW: u32 = 0;
++pub const SYSCALL_DISPATCH_FILTER_BLOCK: u32 = 1;
++pub const PR_PAC_SET_ENABLED_KEYS: u32 = 60;
++pub const PR_PAC_GET_ENABLED_KEYS: u32 = 61;
++pub const PR_SCHED_CORE: u32 = 62;
++pub const PR_SCHED_CORE_GET: u32 = 0;
++pub const PR_SCHED_CORE_CREATE: u32 = 1;
++pub const PR_SCHED_CORE_SHARE_TO: u32 = 2;
++pub const PR_SCHED_CORE_SHARE_FROM: u32 = 3;
++pub const PR_SCHED_CORE_MAX: u32 = 4;
++pub const PR_SCHED_CORE_SCOPE_THREAD: u32 = 0;
++pub const PR_SCHED_CORE_SCOPE_THREAD_GROUP: u32 = 1;
++pub const PR_SCHED_CORE_SCOPE_PROCESS_GROUP: u32 = 2;
++pub const PR_SME_SET_VL: u32 = 63;
++pub const PR_SME_SET_VL_ONEXEC: u32 = 262144;
++pub const PR_SME_GET_VL: u32 = 64;
++pub const PR_SME_VL_LEN_MASK: u32 = 65535;
++pub const PR_SME_VL_INHERIT: u32 = 131072;
++pub const PR_SET_MDWE: u32 = 65;
++pub const PR_MDWE_REFUSE_EXEC_GAIN: u32 = 1;
++pub const PR_GET_MDWE: u32 = 66;
++pub const PR_SET_VMA: u32 = 1398164801;
++pub const PR_SET_VMA_ANON_NAME: u32 = 0;
+diff --git a/vendor/linux-raw-sys-0.4.14/src/sw_64/system.rs b/vendor/linux-raw-sys-0.4.14/src/sw_64/system.rs
+new file mode 100644
+index 00000000000..1360bd91ec8
+--- /dev/null
++++ b/vendor/linux-raw-sys-0.4.14/src/sw_64/system.rs
+@@ -0,0 +1,139 @@
++/* automatically generated by rust-bindgen 0.66.1 */
++
++pub type __s8 = crate::ctypes::c_schar;
++pub type __u8 = crate::ctypes::c_uchar;
++pub type __s16 = crate::ctypes::c_short;
++pub type __u16 = crate::ctypes::c_ushort;
++pub type __s32 = crate::ctypes::c_int;
++pub type __u32 = crate::ctypes::c_uint;
++pub type __s64 = crate::ctypes::c_long;
++pub type __u64 = crate::ctypes::c_ulong;
++pub type __kernel_key_t = crate::ctypes::c_int;
++pub type __kernel_mqd_t = crate::ctypes::c_int;
++pub type __kernel_daddr_t = crate::ctypes::c_long;
++pub type __kernel_long_t = crate::ctypes::c_long;
++pub type __kernel_ulong_t = crate::ctypes::c_ulong;
++pub type __kernel_ino_t = __kernel_ulong_t;
++pub type __kernel_mode_t = crate::ctypes::c_uint;
++pub type __kernel_pid_t = crate::ctypes::c_int;
++pub type __kernel_ipc_pid_t = crate::ctypes::c_int;
++pub type __kernel_uid_t = crate::ctypes::c_uint;
++pub type __kernel_gid_t = crate::ctypes::c_uint;
++pub type __kernel_suseconds_t = __kernel_long_t;
++pub type __kernel_uid32_t = crate::ctypes::c_uint;
++pub type __kernel_gid32_t = crate::ctypes::c_uint;
++pub type __kernel_old_uid_t = __kernel_uid_t;
++pub type __kernel_old_gid_t = __kernel_gid_t;
++pub type __kernel_old_dev_t = crate::ctypes::c_uint;
++pub type __kernel_size_t = __kernel_ulong_t;
++pub type __kernel_ssize_t = __kernel_long_t;
++pub type __kernel_ptrdiff_t = __kernel_long_t;
++pub type __kernel_off_t = __kernel_long_t;
++pub type __kernel_loff_t = crate::ctypes::c_longlong;
++pub type __kernel_old_time_t = __kernel_long_t;
++pub type __kernel_time_t = __kernel_long_t;
++pub type __kernel_time64_t = crate::ctypes::c_longlong;
++pub type __kernel_clock_t = __kernel_long_t;
++pub type __kernel_timer_t = crate::ctypes::c_int;
++pub type __kernel_clockid_t = crate::ctypes::c_int;
++pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
++pub type __kernel_uid16_t = crate::ctypes::c_ushort;
++pub type __kernel_gid16_t = crate::ctypes::c_ushort;
++pub type __le16 = __u16;
++pub type __be16 = __u16;
++pub type __le32 = __u32;
++pub type __be32 = __u32;
++pub type __le64 = __u64;
++pub type __be64 = __u64;
++pub type __sum16 = __u16;
++pub type __wsum = __u32;
++pub type __poll_t = crate::ctypes::c_uint;
++#[repr(C)]
++#[derive(Default)]
++pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
++#[repr(C)]
++#[derive(Debug)]
++pub struct sysinfo {
++pub uptime: __kernel_long_t,
++pub loads: [__kernel_ulong_t; 3usize],
++pub totalram: __kernel_ulong_t,
++pub freeram: __kernel_ulong_t,
++pub sharedram: __kernel_ulong_t,
++pub bufferram: __kernel_ulong_t,
++pub totalswap: __kernel_ulong_t,
++pub freeswap: __kernel_ulong_t,
++pub procs: __u16,
++pub pad: __u16,
++pub totalhigh: __kernel_ulong_t,
++pub freehigh: __kernel_ulong_t,
++pub mem_unit: __u32,
++pub _f: __IncompleteArrayField<crate::ctypes::c_char>,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct oldold_utsname {
++pub sysname: [crate::ctypes::c_char; 9usize],
++pub nodename: [crate::ctypes::c_char; 9usize],
++pub release: [crate::ctypes::c_char; 9usize],
++pub version: [crate::ctypes::c_char; 9usize],
++pub machine: [crate::ctypes::c_char; 9usize],
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct old_utsname {
++pub sysname: [crate::ctypes::c_char; 65usize],
++pub nodename: [crate::ctypes::c_char; 65usize],
++pub release: [crate::ctypes::c_char; 65usize],
++pub version: [crate::ctypes::c_char; 65usize],
++pub machine: [crate::ctypes::c_char; 65usize],
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct new_utsname {
++pub sysname: [crate::ctypes::c_char; 65usize],
++pub nodename: [crate::ctypes::c_char; 65usize],
++pub release: [crate::ctypes::c_char; 65usize],
++pub version: [crate::ctypes::c_char; 65usize],
++pub machine: [crate::ctypes::c_char; 65usize],
++pub domainname: [crate::ctypes::c_char; 65usize],
++}
++pub const _MIPS_ISA_MIPS1: u32 = 1;
++pub const _MIPS_ISA_MIPS2: u32 = 2;
++pub const _MIPS_ISA_MIPS3: u32 = 3;
++pub const _MIPS_ISA_MIPS4: u32 = 4;
++pub const _MIPS_ISA_MIPS5: u32 = 5;
++pub const _MIPS_ISA_MIPS32: u32 = 6;
++pub const _MIPS_ISA_MIPS64: u32 = 7;
++pub const _MIPS_SIM_ABI32: u32 = 1;
++pub const _MIPS_SIM_NABI32: u32 = 2;
++pub const _MIPS_SIM_ABI64: u32 = 3;
++pub const SI_LOAD_SHIFT: u32 = 16;
++pub const __OLD_UTS_LEN: u32 = 8;
++pub const __NEW_UTS_LEN: u32 = 64;
++impl<T> __IncompleteArrayField<T> {
++#[inline]
++pub const fn new() -> Self {
++__IncompleteArrayField(::core::marker::PhantomData, [])
++}
++#[inline]
++pub fn as_ptr(&self) -> *const T {
++self as *const _ as *const T
++}
++#[inline]
++pub fn as_mut_ptr(&mut self) -> *mut T {
++self as *mut _ as *mut T
++}
++#[inline]
++pub unsafe fn as_slice(&self, len: usize) -> &[T] {
++::core::slice::from_raw_parts(self.as_ptr(), len)
++}
++#[inline]
++pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
++::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
++}
++}
++impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
++fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
++fmt.write_str("__IncompleteArrayField")
++}
++}
+diff --git a/vendor/linux-raw-sys-0.4.14/src/sw_64/xdp.rs b/vendor/linux-raw-sys-0.4.14/src/sw_64/xdp.rs
+new file mode 100644
+index 00000000000..d210d09aff0
+--- /dev/null
++++ b/vendor/linux-raw-sys-0.4.14/src/sw_64/xdp.rs
+@@ -0,0 +1,169 @@
++/* automatically generated by rust-bindgen 0.66.1 */
++
++pub type __s8 = crate::ctypes::c_schar;
++pub type __u8 = crate::ctypes::c_uchar;
++pub type __s16 = crate::ctypes::c_short;
++pub type __u16 = crate::ctypes::c_ushort;
++pub type __s32 = crate::ctypes::c_int;
++pub type __u32 = crate::ctypes::c_uint;
++pub type __s64 = crate::ctypes::c_long;
++pub type __u64 = crate::ctypes::c_ulong;
++pub type __kernel_key_t = crate::ctypes::c_int;
++pub type __kernel_mqd_t = crate::ctypes::c_int;
++pub type __kernel_daddr_t = crate::ctypes::c_long;
++pub type __kernel_long_t = crate::ctypes::c_long;
++pub type __kernel_ulong_t = crate::ctypes::c_ulong;
++pub type __kernel_ino_t = __kernel_ulong_t;
++pub type __kernel_mode_t = crate::ctypes::c_uint;
++pub type __kernel_pid_t = crate::ctypes::c_int;
++pub type __kernel_ipc_pid_t = crate::ctypes::c_int;
++pub type __kernel_uid_t = crate::ctypes::c_uint;
++pub type __kernel_gid_t = crate::ctypes::c_uint;
++pub type __kernel_suseconds_t = __kernel_long_t;
++pub type __kernel_uid32_t = crate::ctypes::c_uint;
++pub type __kernel_gid32_t = crate::ctypes::c_uint;
++pub type __kernel_old_uid_t = __kernel_uid_t;
++pub type __kernel_old_gid_t = __kernel_gid_t;
++pub type __kernel_old_dev_t = crate::ctypes::c_uint;
++pub type __kernel_size_t = __kernel_ulong_t;
++pub type __kernel_ssize_t = __kernel_long_t;
++pub type __kernel_ptrdiff_t = __kernel_long_t;
++pub type __kernel_off_t = __kernel_long_t;
++pub type __kernel_loff_t = crate::ctypes::c_longlong;
++pub type __kernel_old_time_t = __kernel_long_t;
++pub type __kernel_time_t = __kernel_long_t;
++pub type __kernel_time64_t = crate::ctypes::c_longlong;
++pub type __kernel_clock_t = __kernel_long_t;
++pub type __kernel_timer_t = crate::ctypes::c_int;
++pub type __kernel_clockid_t = crate::ctypes::c_int;
++pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
++pub type __kernel_uid16_t = crate::ctypes::c_ushort;
++pub type __kernel_gid16_t = crate::ctypes::c_ushort;
++pub type __le16 = __u16;
++pub type __be16 = __u16;
++pub type __le32 = __u32;
++pub type __be32 = __u32;
++pub type __le64 = __u64;
++pub type __be64 = __u64;
++pub type __sum16 = __u16;
++pub type __wsum = __u32;
++pub type __poll_t = crate::ctypes::c_uint;
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct sockaddr_xdp {
++pub sxdp_family: __u16,
++pub sxdp_flags: __u16,
++pub sxdp_ifindex: __u32,
++pub sxdp_queue_id: __u32,
++pub sxdp_shared_umem_fd: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct xdp_ring_offset {
++pub producer: __u64,
++pub consumer: __u64,
++pub desc: __u64,
++pub flags: __u64,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct xdp_mmap_offsets {
++pub rx: xdp_ring_offset,
++pub tx: xdp_ring_offset,
++pub fr: xdp_ring_offset,
++pub cr: xdp_ring_offset,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct xdp_umem_reg {
++pub addr: __u64,
++pub len: __u64,
++pub chunk_size: __u32,
++pub headroom: __u32,
++pub flags: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct xdp_statistics {
++pub rx_dropped: __u64,
++pub rx_invalid_descs: __u64,
++pub tx_invalid_descs: __u64,
++pub rx_ring_full: __u64,
++pub rx_fill_ring_empty_descs: __u64,
++pub tx_ring_empty_descs: __u64,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct xdp_options {
++pub flags: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct xdp_desc {
++pub addr: __u64,
++pub len: __u32,
++pub options: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct xdp_ring_offset_v1 {
++pub producer: __u64,
++pub consumer: __u64,
++pub desc: __u64,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct xdp_mmap_offsets_v1 {
++pub rx: xdp_ring_offset_v1,
++pub tx: xdp_ring_offset_v1,
++pub fr: xdp_ring_offset_v1,
++pub cr: xdp_ring_offset_v1,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct xdp_umem_reg_v1 {
++pub addr: __u64,
++pub len: __u64,
++pub chunk_size: __u32,
++pub headroom: __u32,
++}
++#[repr(C)]
++#[derive(Debug, Copy, Clone)]
++pub struct xdp_statistics_v1 {
++pub rx_dropped: __u64,
++pub rx_invalid_descs: __u64,
++pub tx_invalid_descs: __u64,
++}
++pub const _MIPS_ISA_MIPS1: u32 = 1;
++pub const _MIPS_ISA_MIPS2: u32 = 2;
++pub const _MIPS_ISA_MIPS3: u32 = 3;
++pub const _MIPS_ISA_MIPS4: u32 = 4;
++pub const _MIPS_ISA_MIPS5: u32 = 5;
++pub const _MIPS_ISA_MIPS32: u32 = 6;
++pub const _MIPS_ISA_MIPS64: u32 = 7;
++pub const _MIPS_SIM_ABI32: u32 = 1;
++pub const _MIPS_SIM_NABI32: u32 = 2;
++pub const _MIPS_SIM_ABI64: u32 = 3;
++pub const XDP_SHARED_UMEM: u32 = 1;
++pub const XDP_COPY: u32 = 2;
++pub const XDP_ZEROCOPY: u32 = 4;
++pub const XDP_USE_NEED_WAKEUP: u32 = 8;
++pub const XDP_UMEM_UNALIGNED_CHUNK_FLAG: u32 = 1;
++pub const XDP_RING_NEED_WAKEUP: u32 = 1;
++pub const XDP_MMAP_OFFSETS: u32 = 1;
++pub const XDP_RX_RING: u32 = 2;
++pub const XDP_TX_RING: u32 = 3;
++pub const XDP_UMEM_REG: u32 = 4;
++pub const XDP_UMEM_FILL_RING: u32 = 5;
++pub const XDP_UMEM_COMPLETION_RING: u32 = 6;
++pub const XDP_STATISTICS: u32 = 7;
++pub const XDP_OPTIONS: u32 = 8;
++pub const XDP_OPTIONS_ZEROCOPY: u32 = 1;
++pub const XDP_PGOFF_RX_RING: u32 = 0;
++pub const XDP_PGOFF_TX_RING: u32 = 2147483648;
++pub const XDP_UMEM_PGOFF_FILL_RING: u64 = 4294967296;
++pub const XDP_UMEM_PGOFF_COMPLETION_RING: u64 = 6442450944;
++pub const XSK_UNALIGNED_BUF_OFFSET_SHIFT: u32 = 48;
++pub const XSK_UNALIGNED_BUF_ADDR_MASK: u64 = 281474976710655;
++pub const XDP_USE_SG: u32 = 16;
++pub const XDP_PKT_CONTD: u32 = 1;
+diff --git a/vendor/nix-0.28.0/src/sys/ioctl/linux.rs b/vendor/nix-0.28.0/src/sys/ioctl/linux.rs
+index 52312f4f044..1783b1bec82 100644
+--- a/vendor/nix-0.28.0/src/sys/ioctl/linux.rs
++++ b/vendor/nix-0.28.0/src/sys/ioctl/linux.rs
+@@ -21,6 +21,7 @@
+ target_arch = "mips",
+ target_arch = "mips32r6",
+ target_arch = "mips64",
++ target_arch = "sw64",
+ target_arch = "mips64r6",
+ target_arch = "powerpc",
+ target_arch = "powerpc64",
+diff --git a/vendor/nix-0.28.0/src/sys/signal.rs b/vendor/nix-0.28.0/src/sys/signal.rs
+index c9b593d0db3..6ba5c7a29ba 100644
+--- a/vendor/nix-0.28.0/src/sys/signal.rs
++++ b/vendor/nix-0.28.0/src/sys/signal.rs
+@@ -72,6 +72,7 @@ pub enum Signal {
+ target_arch = "mips32r6",
+ target_arch = "mips64",
+ target_arch = "mips64r6",
++ target_arch = "sw64",
+ target_arch = "sparc64"))))]
+ SIGSTKFLT,
+ /// To parent on child stop or exit
+@@ -152,6 +153,7 @@ fn from_str(s: &str) -> Result<Signal> {
+ target_arch = "mips32r6",
+ target_arch = "mips64",
+ target_arch = "mips64r6",
++ target_arch = "sw64",
+ target_arch = "sparc64"
+ ))
+ ))]
+@@ -233,6 +235,7 @@ pub const fn as_str(self) -> &'static str {
+ target_arch = "mips",
+ target_arch = "mips32r6",
+ target_arch = "mips64",
++ target_arch = "sw64",
+ target_arch = "mips64r6",
+ target_arch = "sparc64"
+ ))
+@@ -321,6 +324,7 @@ fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
+ target_arch = "mips32r6",
+ target_arch = "mips64",
+ target_arch = "mips64r6",
++ target_arch = "sw64",
+ target_arch = "sparc64"
+ ))
+ ))]
+@@ -338,6 +342,7 @@ fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
+ target_arch = "mips32r6",
+ target_arch = "mips64",
+ target_arch = "mips64r6",
++ target_arch = "sw64",
+ target_arch = "sparc64"
+ )
+ ))]
+diff --git a/vendor/nix-0.28.0/src/sys/statfs.rs b/vendor/nix-0.28.0/src/sys/statfs.rs
+index b2315f4cebb..bd055278c9d 100644
+--- a/vendor/nix-0.28.0/src/sys/statfs.rs
++++ b/vendor/nix-0.28.0/src/sys/statfs.rs
+@@ -59,10 +59,13 @@
+ type fs_type_t = libc::c_ulong;
+ #[cfg(all(target_os = "linux", target_env = "uclibc"))]
+ type fs_type_t = libc::c_int;
++#[cfg(all(target_os = "linux", target_arch = "sw64"))]
++type fs_type_t = libc::c_long;
+ #[cfg(all(
+ target_os = "linux",
+ not(any(
+ target_arch = "s390x",
++ target_arch = "sw64",
+ target_env = "musl",
+ target_env = "ohos",
+ target_env = "uclibc"
+@@ -338,6 +341,7 @@ pub fn optimal_transfer_size(&self) -> libc::c_ulong {
+ target_os = "linux",
+ not(any(
+ target_arch = "s390x",
++ target_arch = "sw64",
+ target_env = "musl",
+ target_env = "ohos",
+ target_env = "uclibc"
+@@ -359,6 +363,12 @@ pub fn optimal_transfer_size(&self) -> libc::c_long {
+ self.0.f_iosize
+ }
+
++ /// Optimal transfer block size
++ #[cfg(target_arch = "sw64")]
++ pub fn optimal_transfer_size(&self) -> libc::c_long {
++ self.0.f_bsize
++ }
++
+ /// Optimal transfer block size
+ #[cfg(target_os = "freebsd")]
+ pub fn optimal_transfer_size(&self) -> u64 {
+@@ -378,6 +388,13 @@ pub fn block_size(&self) -> u32 {
+ self.0.f_bsize
+ }
+
++ /// Size of a block
++ // f_bsize on linux: https://github.com/torvalds/linux/blob/master/fs/nfs/super.c#L471
++ #[cfg(all(target_os = "linux", target_arch = "sw64", not(target_env = "musl")))]
++ pub fn block_size(&self) -> libc::c_long {
++ self.0.f_bsize
++ }
++
+ /// Size of a block
+ // f_bsize on linux: https://github.com/torvalds/linux/blob/master/fs/nfs/super.c#L471
+ #[cfg(all(target_os = "linux", target_env = "musl"))]
+@@ -405,6 +422,7 @@ pub fn block_size(&self) -> libc::c_int {
+ target_os = "linux",
+ not(any(
+ target_arch = "s390x",
++ target_arch = "sw64",
+ target_env = "musl",
+ target_env = "ohos",
+ target_env = "uclibc"
+@@ -476,6 +494,7 @@ pub fn maximum_name_length(&self) -> libc::c_int {
+ target_os = "linux",
+ not(any(
+ target_arch = "s390x",
++ target_arch = "sw64",
+ target_env = "musl",
+ target_env = "ohos",
+ target_env = "uclibc"
+@@ -499,10 +518,17 @@ pub fn maximum_name_length(&self) -> libc::c_ulong {
+ target_os = "fuchsia",
+ target_os = "openbsd",
+ ))]
++ #[cfg(not(target_arch = "sw64"))]
+ pub fn blocks(&self) -> u64 {
+ self.0.f_blocks
+ }
+
++ /// Total data blocks in filesystem
++ #[cfg(target_arch = "sw64")]
++ pub fn blocks(&self) -> libc::c_long {
++ self.0.f_blocks
++ }
++
+ /// Total data blocks in filesystem
+ #[cfg(target_os = "dragonfly")]
+ pub fn blocks(&self) -> libc::c_long {
+@@ -523,10 +549,17 @@ pub fn blocks(&self) -> u32 {
+ target_os = "fuchsia",
+ target_os = "openbsd",
+ ))]
++ #[cfg(not(target_arch = "sw64"))]
+ pub fn blocks_free(&self) -> u64 {
+ self.0.f_bfree
+ }
+
++ /// Free blocks in filesystem
++ #[cfg(target_arch = "sw64")]
++ pub fn blocks_free(&self) -> libc::c_long {
++ self.0.f_bfree
++ }
++
+ /// Free blocks in filesystem
+ #[cfg(target_os = "dragonfly")]
+ pub fn blocks_free(&self) -> libc::c_long {
+@@ -541,10 +574,17 @@ pub fn blocks_free(&self) -> u32 {
+
+ /// Free blocks available to unprivileged user
+ #[cfg(any(apple_targets, linux_android, target_os = "fuchsia"))]
++ #[cfg(not(target_arch = "sw64"))]
+ pub fn blocks_available(&self) -> u64 {
+ self.0.f_bavail
+ }
+
++ /// Free blocks available to unprivileged user
++ #[cfg(target_arch = "sw64")]
++ pub fn blocks_available(&self) -> libc::c_long {
++ self.0.f_bavail
++ }
++
+ /// Free blocks available to unprivileged user
+ #[cfg(target_os = "dragonfly")]
+ pub fn blocks_available(&self) -> libc::c_long {
+diff --git a/vendor/nix-0.28.0/src/sys/termios.rs b/vendor/nix-0.28.0/src/sys/termios.rs
+index e006c2f1b09..20c11d7da5a 100644
+--- a/vendor/nix-0.28.0/src/sys/termios.rs
++++ b/vendor/nix-0.28.0/src/sys/termios.rs
+@@ -631,7 +631,7 @@ pub struct ControlFlags: tcflag_t {
+ CMSPAR;
+ #[cfg(any(target_os = "android",
+ all(target_os = "linux",
+- not(any(target_arch = "powerpc", target_arch = "powerpc64")))))]
++ not(any(target_arch = "powerpc", target_arch = "powerpc64", target_arch = "sw64")))))]
+ CIBAUD;
+ #[cfg(linux_android)]
+ CBAUDEX;
+diff --git a/vendor/nix-0.29.0/src/fcntl.rs b/vendor/nix-0.29.0/src/fcntl.rs
+index cf87926c7b1..72b47c89c7c 100644
+--- a/vendor/nix-0.29.0/src/fcntl.rs
++++ b/vendor/nix-0.29.0/src/fcntl.rs
+@@ -345,6 +345,7 @@ fn default() -> Self {
+ /// # See also
+ ///
+ /// [openat2](https://man7.org/linux/man-pages/man2/openat2.2.html)
++ #[cfg(not(target_arch = "sw64"))]
+ pub fn openat2<P: ?Sized + NixPath>(
+ dirfd: RawFd,
+ path: &P,
+diff --git a/vendor/nix-0.29.0/src/sys/ioctl/linux.rs b/vendor/nix-0.29.0/src/sys/ioctl/linux.rs
+index 52312f4f044..1783b1bec82 100644
+--- a/vendor/nix-0.29.0/src/sys/ioctl/linux.rs
++++ b/vendor/nix-0.29.0/src/sys/ioctl/linux.rs
+@@ -21,6 +21,7 @@
+ target_arch = "mips",
+ target_arch = "mips32r6",
+ target_arch = "mips64",
++ target_arch = "sw64",
+ target_arch = "mips64r6",
+ target_arch = "powerpc",
+ target_arch = "powerpc64",
+diff --git a/vendor/nix-0.29.0/src/sys/signal.rs b/vendor/nix-0.29.0/src/sys/signal.rs
+index 921fb28d6f5..5ab0e19ba8a 100644
+--- a/vendor/nix-0.29.0/src/sys/signal.rs
++++ b/vendor/nix-0.29.0/src/sys/signal.rs
+@@ -72,6 +72,7 @@ pub enum Signal {
+ target_arch = "mips32r6",
+ target_arch = "mips64",
+ target_arch = "mips64r6",
++ target_arch = "sw64",
+ target_arch = "sparc64"))))]
+ SIGSTKFLT,
+ /// To parent on child stop or exit
+@@ -152,6 +153,7 @@ fn from_str(s: &str) -> Result<Signal> {
+ target_arch = "mips32r6",
+ target_arch = "mips64",
+ target_arch = "mips64r6",
++ target_arch = "sw64",
+ target_arch = "sparc64"
+ ))
+ ))]
+@@ -233,6 +235,7 @@ pub const fn as_str(self) -> &'static str {
+ target_arch = "mips",
+ target_arch = "mips32r6",
+ target_arch = "mips64",
++ target_arch = "sw64",
+ target_arch = "mips64r6",
+ target_arch = "sparc64"
+ ))
+@@ -321,6 +324,7 @@ fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
+ target_arch = "mips32r6",
+ target_arch = "mips64",
+ target_arch = "mips64r6",
++ target_arch = "sw64",
+ target_arch = "sparc64"
+ ))
+ ))]
+@@ -338,6 +342,7 @@ fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
+ target_arch = "mips32r6",
+ target_arch = "mips64",
+ target_arch = "mips64r6",
++ target_arch = "sw64",
+ target_arch = "sparc64"
+ )
+ ))]
+diff --git a/vendor/nix-0.29.0/src/sys/statfs.rs b/vendor/nix-0.29.0/src/sys/statfs.rs
+index b2315f4cebb..bd055278c9d 100644
+--- a/vendor/nix-0.29.0/src/sys/statfs.rs
++++ b/vendor/nix-0.29.0/src/sys/statfs.rs
+@@ -59,10 +59,13 @@
+ type fs_type_t = libc::c_ulong;
+ #[cfg(all(target_os = "linux", target_env = "uclibc"))]
+ type fs_type_t = libc::c_int;
++#[cfg(all(target_os = "linux", target_arch = "sw64"))]
++type fs_type_t = libc::c_long;
+ #[cfg(all(
+ target_os = "linux",
+ not(any(
+ target_arch = "s390x",
++ target_arch = "sw64",
+ target_env = "musl",
+ target_env = "ohos",
+ target_env = "uclibc"
+@@ -338,6 +341,7 @@ pub fn optimal_transfer_size(&self) -> libc::c_ulong {
+ target_os = "linux",
+ not(any(
+ target_arch = "s390x",
++ target_arch = "sw64",
+ target_env = "musl",
+ target_env = "ohos",
+ target_env = "uclibc"
+@@ -359,6 +363,12 @@ pub fn optimal_transfer_size(&self) -> libc::c_long {
+ self.0.f_iosize
+ }
+
++ /// Optimal transfer block size
++ #[cfg(target_arch = "sw64")]
++ pub fn optimal_transfer_size(&self) -> libc::c_long {
++ self.0.f_bsize
++ }
++
+ /// Optimal transfer block size
+ #[cfg(target_os = "freebsd")]
+ pub fn optimal_transfer_size(&self) -> u64 {
+@@ -378,6 +388,13 @@ pub fn block_size(&self) -> u32 {
+ self.0.f_bsize
+ }
+
++ /// Size of a block
++ // f_bsize on linux: https://github.com/torvalds/linux/blob/master/fs/nfs/super.c#L471
++ #[cfg(all(target_os = "linux", target_arch = "sw64", not(target_env = "musl")))]
++ pub fn block_size(&self) -> libc::c_long {
++ self.0.f_bsize
++ }
++
+ /// Size of a block
+ // f_bsize on linux: https://github.com/torvalds/linux/blob/master/fs/nfs/super.c#L471
+ #[cfg(all(target_os = "linux", target_env = "musl"))]
+@@ -405,6 +422,7 @@ pub fn block_size(&self) -> libc::c_int {
+ target_os = "linux",
+ not(any(
+ target_arch = "s390x",
++ target_arch = "sw64",
+ target_env = "musl",
+ target_env = "ohos",
+ target_env = "uclibc"
+@@ -476,6 +494,7 @@ pub fn maximum_name_length(&self) -> libc::c_int {
+ target_os = "linux",
+ not(any(
+ target_arch = "s390x",
++ target_arch = "sw64",
+ target_env = "musl",
+ target_env = "ohos",
+ target_env = "uclibc"
+@@ -499,10 +518,17 @@ pub fn maximum_name_length(&self) -> libc::c_ulong {
+ target_os = "fuchsia",
+ target_os = "openbsd",
+ ))]
++ #[cfg(not(target_arch = "sw64"))]
+ pub fn blocks(&self) -> u64 {
+ self.0.f_blocks
+ }
+
++ /// Total data blocks in filesystem
++ #[cfg(target_arch = "sw64")]
++ pub fn blocks(&self) -> libc::c_long {
++ self.0.f_blocks
++ }
++
+ /// Total data blocks in filesystem
+ #[cfg(target_os = "dragonfly")]
+ pub fn blocks(&self) -> libc::c_long {
+@@ -523,10 +549,17 @@ pub fn blocks(&self) -> u32 {
+ target_os = "fuchsia",
+ target_os = "openbsd",
+ ))]
++ #[cfg(not(target_arch = "sw64"))]
+ pub fn blocks_free(&self) -> u64 {
+ self.0.f_bfree
+ }
+
++ /// Free blocks in filesystem
++ #[cfg(target_arch = "sw64")]
++ pub fn blocks_free(&self) -> libc::c_long {
++ self.0.f_bfree
++ }
++
+ /// Free blocks in filesystem
+ #[cfg(target_os = "dragonfly")]
+ pub fn blocks_free(&self) -> libc::c_long {
+@@ -541,10 +574,17 @@ pub fn blocks_free(&self) -> u32 {
+
+ /// Free blocks available to unprivileged user
+ #[cfg(any(apple_targets, linux_android, target_os = "fuchsia"))]
++ #[cfg(not(target_arch = "sw64"))]
+ pub fn blocks_available(&self) -> u64 {
+ self.0.f_bavail
+ }
+
++ /// Free blocks available to unprivileged user
++ #[cfg(target_arch = "sw64")]
++ pub fn blocks_available(&self) -> libc::c_long {
++ self.0.f_bavail
++ }
++
+ /// Free blocks available to unprivileged user
+ #[cfg(target_os = "dragonfly")]
+ pub fn blocks_available(&self) -> libc::c_long {
+diff --git a/vendor/nix-0.29.0/src/sys/termios.rs b/vendor/nix-0.29.0/src/sys/termios.rs
+index e006c2f1b09..20c11d7da5a 100644
+--- a/vendor/nix-0.29.0/src/sys/termios.rs
++++ b/vendor/nix-0.29.0/src/sys/termios.rs
+@@ -631,7 +631,7 @@ pub struct ControlFlags: tcflag_t {
+ CMSPAR;
+ #[cfg(any(target_os = "android",
+ all(target_os = "linux",
+- not(any(target_arch = "powerpc", target_arch = "powerpc64")))))]
++ not(any(target_arch = "powerpc", target_arch = "powerpc64", target_arch = "sw64")))))]
+ CIBAUD;
+ #[cfg(linux_android)]
+ CBAUDEX;
+diff --git a/vendor/object-0.32.2/src/common.rs b/vendor/object-0.32.2/src/common.rs
+index 36f6656ffca..32bb2da4aef 100644
+--- a/vendor/object-0.32.2/src/common.rs
++++ b/vendor/object-0.32.2/src/common.rs
+@@ -19,6 +19,7 @@ pub enum Architecture {
+ LoongArch64,
+ Mips,
+ Mips64,
++ Sw64,
+ Msp430,
+ PowerPc,
+ PowerPc64,
+@@ -62,6 +63,7 @@ pub fn address_size(self) -> Option<AddressSize> {
+ Architecture::LoongArch64 => Some(AddressSize::U64),
+ Architecture::Mips => Some(AddressSize::U32),
+ Architecture::Mips64 => Some(AddressSize::U64),
++ Architecture::Sw64 => Some(AddressSize::U64),
+ Architecture::Msp430 => Some(AddressSize::U16),
+ Architecture::PowerPc => Some(AddressSize::U32),
+ Architecture::PowerPc64 => Some(AddressSize::U64),
+diff --git a/vendor/object-0.32.2/src/elf.rs b/vendor/object-0.32.2/src/elf.rs
+index f620171213a..a2f9e9f319f 100644
+--- a/vendor/object-0.32.2/src/elf.rs
++++ b/vendor/object-0.32.2/src/elf.rs
+@@ -3333,6 +3333,122 @@ pub fn gnu_hash(name: &[u8]) -> u32 {
+ // Alpha values for `Dyn64::d_tag`.
+ pub const DT_ALPHA_PLTRO: u32 = DT_LOPROC + 0;
+
++// Sw64 specific definitions.
++
++// Sw64 values for `FileHeader64::e_flags`.
++pub const EM_SW_64:u16 = 0x9916;
++
++/// All addresses must be < 2GB.
++pub const EF_SW_64_32BIT: u32 = 1;
++/// Relocations for relaxing exist.
++pub const EF_SW_64_CANRELAX: u32 = 2;
++
++// Sw64 values for `SectionHeader64::sh_type`.
++
++// These two are primerily concerned with ECOFF debugging info.
++#[allow(missing_docs)]
++pub const SHT_SW_64_DEBUG: u32 = 0x7000_0001;
++#[allow(missing_docs)]
++pub const SHT_SW_64_REGINFO: u32 = 0x7000_0002;
++
++// Sw64 values for `SectionHeader64::sh_flags`.
++
++#[allow(missing_docs)]
++pub const SHF_SW_64_GPREL: u32 = 0x1000_0000;
++
++// Sw64 values for `Sym64::st_other`.
++/// No PV required.
++pub const STO_SW_64_NOPV: u8 = 0x80;
++/// PV only used for initial ldgp.
++pub const STO_SW_64_STD_GPLOAD: u8 = 0x88;
++
++// Sw64 values for `Rel64::r_type`.
++
++/// No reloc
++pub const R_SW_64_NONE: u32 = 0;
++/// Direct 32 bit
++pub const R_SW_64_REFLONG: u32 = 1;
++/// Direct 64 bit
++pub const R_SW_64_REFQUAD: u32 = 2;
++/// GP relative 32 bit
++pub const R_SW_64_GPREL32: u32 = 3;
++/// GP relative 16 bit w/optimization
++pub const R_SW_64_LITERAL: u32 = 4;
++/// Optimization hint for LITERAL
++pub const R_SW_64_LITUSE: u32 = 5;
++/// Add displacement to GP
++pub const R_SW_64_GPDISP: u32 = 6;
++/// PC+4 relative 23 bit shifted
++pub const R_SW_64_BRADDR: u32 = 7;
++/// PC+4 relative 16 bit shifted
++pub const R_SW_64_HINT: u32 = 8;
++/// PC relative 16 bit
++pub const R_SW_64_SREL16: u32 = 9;
++/// PC relative 32 bit
++pub const R_SW_64_SREL32: u32 = 10;
++/// PC relative 64 bit
++pub const R_SW_64_SREL64: u32 = 11;
++/// GP relative 32 bit, high 16 bits
++pub const R_SW_64_GPRELHIGH: u32 = 17;
++/// GP relative 32 bit, low 16 bits
++pub const R_SW_64_GPRELLOW: u32 = 18;
++/// GP relative 16 bit
++pub const R_SW_64_GPREL16: u32 = 19;
++/// Copy symbol at runtime
++pub const R_SW_64_COPY: u32 = 24;
++/// Create GOT entry
++pub const R_SW_64_GLOB_DAT: u32 = 25;
++/// Create PLT entry
++pub const R_SW_64_JMP_SLOT: u32 = 26;
++/// Adjust by program base
++pub const R_SW_64_RELATIVE: u32 = 27;
++#[allow(missing_docs)]
++pub const R_SW_64_TLS_GD_HI: u32 = 28;
++#[allow(missing_docs)]
++pub const R_SW_64_TLSGD: u32 = 29;
++#[allow(missing_docs)]
++pub const R_SW_64_TLS_LDM: u32 = 30;
++#[allow(missing_docs)]
++pub const R_SW_64_DTPMOD64: u32 = 31;
++#[allow(missing_docs)]
++pub const R_SW_64_GOTDTPREL: u32 = 32;
++#[allow(missing_docs)]
++pub const R_SW_64_DTPREL64: u32 = 33;
++#[allow(missing_docs)]
++pub const R_SW_64_DTPRELHI: u32 = 34;
++#[allow(missing_docs)]
++pub const R_SW_64_DTPRELLO: u32 = 35;
++#[allow(missing_docs)]
++pub const R_SW_64_DTPREL16: u32 = 36;
++#[allow(missing_docs)]
++pub const R_SW_64_GOTTPREL: u32 = 37;
++#[allow(missing_docs)]
++pub const R_SW_64_TPREL64: u32 = 38;
++#[allow(missing_docs)]
++pub const R_SW_64_TPRELHI: u32 = 39;
++#[allow(missing_docs)]
++pub const R_SW_64_TPRELLO: u32 = 40;
++#[allow(missing_docs)]
++pub const R_SW_64_TPREL16: u32 = 41;
++
++// Magic values of the `R_SW_64_LITUSE` relocation addend.
++#[allow(missing_docs)]
++pub const LITUSE_SW_64_ADDR: u32 = 0;
++#[allow(missing_docs)]
++pub const LITUSE_SW_64_BASE: u32 = 1;
++#[allow(missing_docs)]
++pub const LITUSE_SW_64_BYTOFF: u32 = 2;
++#[allow(missing_docs)]
++pub const LITUSE_SW_64_JSR: u32 = 3;
++#[allow(missing_docs)]
++pub const LITUSE_SW_64_TLS_GD: u32 = 4;
++#[allow(missing_docs)]
++pub const LITUSE_SW_64_TLS_LDM: u32 = 5;
++
++// Sw64 values for `Dyn64::d_tag`.
++#[allow(missing_docs)]
++pub const DT_SW_64_PLTRO: u32 = DT_LOPROC + 0;
++
+ // PowerPC specific declarations.
+
+ // PowerPC values for `FileHeader*::e_flags`.
+diff --git a/vendor/object-0.32.2/src/read/elf/file.rs b/vendor/object-0.32.2/src/read/elf/file.rs
+index 14ba5685337..d7a382eb064 100644
+--- a/vendor/object-0.32.2/src/read/elf/file.rs
++++ b/vendor/object-0.32.2/src/read/elf/file.rs
+@@ -175,6 +175,7 @@ fn architecture(&self) -> Architecture {
+ (elf::EM_LOONGARCH, true) => Architecture::LoongArch64,
+ (elf::EM_MIPS, false) => Architecture::Mips,
+ (elf::EM_MIPS, true) => Architecture::Mips64,
++ (elf::EM_SW_64, true) => Architecture::Sw64,
+ (elf::EM_MSP430, _) => Architecture::Msp430,
+ (elf::EM_PPC, _) => Architecture::PowerPc,
+ (elf::EM_PPC64, _) => Architecture::PowerPc64,
+diff --git a/vendor/object-0.32.2/src/read/elf/relocation.rs b/vendor/object-0.32.2/src/read/elf/relocation.rs
+index aac1574eee9..aee3a09f167 100644
+--- a/vendor/object-0.32.2/src/read/elf/relocation.rs
++++ b/vendor/object-0.32.2/src/read/elf/relocation.rs
+@@ -340,6 +340,11 @@ fn parse_relocation<Elf: FileHeader>(
+ elf::R_MIPS_64 => (RelocationKind::Absolute, 64),
+ r_type => (RelocationKind::Elf(r_type), 0),
+ },
++ elf::EM_SW_64 => match reloc.r_type(endian, false) {
++ elf::R_SW_64_REFLONG => (RelocationKind::Absolute, 32),
++ elf::R_SW_64_REFQUAD => (RelocationKind::Absolute, 64),
++ r_type => (RelocationKind::Elf(r_type), 0),
++ },
+ elf::EM_MSP430 => match reloc.r_type(endian, false) {
+ elf::R_MSP430_32 => (RelocationKind::Absolute, 32),
+ elf::R_MSP430_16_BYTE => (RelocationKind::Absolute, 16),
+diff --git a/vendor/object-0.32.2/src/write/elf/object.rs b/vendor/object-0.32.2/src/write/elf/object.rs
+index 5d7a93e53ac..5a8c40bbfbd 100644
+--- a/vendor/object-0.32.2/src/write/elf/object.rs
++++ b/vendor/object-0.32.2/src/write/elf/object.rs
+@@ -134,6 +134,7 @@ fn elf_has_relocation_addend(&self) -> Result<bool> {
+ Architecture::LoongArch64 => true,
+ Architecture::Mips => false,
+ Architecture::Mips64 => true,
++ Architecture::Sw64 => true,
+ Architecture::Msp430 => true,
+ Architecture::PowerPc => true,
+ Architecture::PowerPc64 => true,
+@@ -295,6 +296,7 @@ pub(crate) fn elf_write(&self, buffer: &mut dyn WritableBuffer) -> Result<()> {
+ (Architecture::LoongArch64, None) => elf::EM_LOONGARCH,
+ (Architecture::Mips, None) => elf::EM_MIPS,
+ (Architecture::Mips64, None) => elf::EM_MIPS,
++ (Architecture::Sw64, None) => elf::EM_SW_64,
+ (Architecture::Msp430, None) => elf::EM_MSP430,
+ (Architecture::PowerPc, None) => elf::EM_PPC,
+ (Architecture::PowerPc64, None) => elf::EM_PPC64,
+@@ -623,6 +625,14 @@ pub(crate) fn elf_write(&self, buffer: &mut dyn WritableBuffer) -> Result<()> {
+ return Err(Error(format!("unimplemented relocation {:?}", reloc)));
+ }
+ },
++ Architecture::Sw64 => match (reloc.kind, reloc.encoding, reloc.size) {
++ (RelocationKind::Absolute, _, 32) => elf::R_SW_64_REFLONG,
++ (RelocationKind::Absolute, _, 64) => elf::R_SW_64_REFQUAD,
++ (RelocationKind::Elf(x), _, _) => x,
++ _ => {
++ return Err(Error(format!("unimplemented relocation {:?}", reloc)));
++ }
++ },
+ Architecture::PowerPc => match (reloc.kind, reloc.encoding, reloc.size) {
+ (RelocationKind::Absolute, _, 32) => elf::R_PPC_ADDR32,
+ (RelocationKind::Elf(x), _, _) => x,
+diff --git a/vendor/object-0.33.0/src/common.rs b/vendor/object-0.33.0/src/common.rs
+index 95dab61f1fa..8f9460ea21f 100644
+--- a/vendor/object-0.33.0/src/common.rs
++++ b/vendor/object-0.33.0/src/common.rs
+@@ -19,6 +19,7 @@ pub enum Architecture {
+ LoongArch64,
+ Mips,
+ Mips64,
++ Sw64,
+ Msp430,
+ PowerPc,
+ PowerPc64,
+@@ -62,6 +63,7 @@ pub fn address_size(self) -> Option<AddressSize> {
+ Architecture::LoongArch64 => Some(AddressSize::U64),
+ Architecture::Mips => Some(AddressSize::U32),
+ Architecture::Mips64 => Some(AddressSize::U64),
++ Architecture::Sw64 => Some(AddressSize::U64),
+ Architecture::Msp430 => Some(AddressSize::U16),
+ Architecture::PowerPc => Some(AddressSize::U32),
+ Architecture::PowerPc64 => Some(AddressSize::U64),
+diff --git a/vendor/object-0.33.0/src/elf.rs b/vendor/object-0.33.0/src/elf.rs
+index 9baf2e4eba2..a2f9e9f319f 100644
+--- a/vendor/object-0.33.0/src/elf.rs
++++ b/vendor/object-0.33.0/src/elf.rs
+@@ -3333,6 +3333,122 @@ pub fn gnu_hash(name: &[u8]) -> u32 {
+ // Alpha values for `Dyn64::d_tag`.
+ pub const DT_ALPHA_PLTRO: u32 = DT_LOPROC + 0;
+
++// Sw64 specific definitions.
++
++// Sw64 values for `FileHeader64::e_flags`.
++pub const EM_SW_64:u16 = 0x9916;
++
++/// All addresses must be < 2GB.
++pub const EF_SW_64_32BIT: u32 = 1;
++/// Relocations for relaxing exist.
++pub const EF_SW_64_CANRELAX: u32 = 2;
++
++// Sw64 values for `SectionHeader64::sh_type`.
++
++// These two are primerily concerned with ECOFF debugging info.
++#[allow(missing_docs)]
++pub const SHT_SW_64_DEBUG: u32 = 0x7000_0001;
++#[allow(missing_docs)]
++pub const SHT_SW_64_REGINFO: u32 = 0x7000_0002;
++
++// Sw64 values for `SectionHeader64::sh_flags`.
++
++#[allow(missing_docs)]
++pub const SHF_SW_64_GPREL: u32 = 0x1000_0000;
++
++// Sw64 values for `Sym64::st_other`.
++/// No PV required.
++pub const STO_SW_64_NOPV: u8 = 0x80;
++/// PV only used for initial ldgp.
++pub const STO_SW_64_STD_GPLOAD: u8 = 0x88;
++
++// Sw64 values for `Rel64::r_type`.
++
++/// No reloc
++pub const R_SW_64_NONE: u32 = 0;
++/// Direct 32 bit
++pub const R_SW_64_REFLONG: u32 = 1;
++/// Direct 64 bit
++pub const R_SW_64_REFQUAD: u32 = 2;
++/// GP relative 32 bit
++pub const R_SW_64_GPREL32: u32 = 3;
++/// GP relative 16 bit w/optimization
++pub const R_SW_64_LITERAL: u32 = 4;
++/// Optimization hint for LITERAL
++pub const R_SW_64_LITUSE: u32 = 5;
++/// Add displacement to GP
++pub const R_SW_64_GPDISP: u32 = 6;
++/// PC+4 relative 23 bit shifted
++pub const R_SW_64_BRADDR: u32 = 7;
++/// PC+4 relative 16 bit shifted
++pub const R_SW_64_HINT: u32 = 8;
++/// PC relative 16 bit
++pub const R_SW_64_SREL16: u32 = 9;
++/// PC relative 32 bit
++pub const R_SW_64_SREL32: u32 = 10;
++/// PC relative 64 bit
++pub const R_SW_64_SREL64: u32 = 11;
++/// GP relative 32 bit, high 16 bits
++pub const R_SW_64_GPRELHIGH: u32 = 17;
++/// GP relative 32 bit, low 16 bits
++pub const R_SW_64_GPRELLOW: u32 = 18;
++/// GP relative 16 bit
++pub const R_SW_64_GPREL16: u32 = 19;
++/// Copy symbol at runtime
++pub const R_SW_64_COPY: u32 = 24;
++/// Create GOT entry
++pub const R_SW_64_GLOB_DAT: u32 = 25;
++/// Create PLT entry
++pub const R_SW_64_JMP_SLOT: u32 = 26;
++/// Adjust by program base
++pub const R_SW_64_RELATIVE: u32 = 27;
++#[allow(missing_docs)]
++pub const R_SW_64_TLS_GD_HI: u32 = 28;
++#[allow(missing_docs)]
++pub const R_SW_64_TLSGD: u32 = 29;
++#[allow(missing_docs)]
++pub const R_SW_64_TLS_LDM: u32 = 30;
++#[allow(missing_docs)]
++pub const R_SW_64_DTPMOD64: u32 = 31;
++#[allow(missing_docs)]
++pub const R_SW_64_GOTDTPREL: u32 = 32;
++#[allow(missing_docs)]
++pub const R_SW_64_DTPREL64: u32 = 33;
++#[allow(missing_docs)]
++pub const R_SW_64_DTPRELHI: u32 = 34;
++#[allow(missing_docs)]
++pub const R_SW_64_DTPRELLO: u32 = 35;
++#[allow(missing_docs)]
++pub const R_SW_64_DTPREL16: u32 = 36;
++#[allow(missing_docs)]
++pub const R_SW_64_GOTTPREL: u32 = 37;
++#[allow(missing_docs)]
++pub const R_SW_64_TPREL64: u32 = 38;
++#[allow(missing_docs)]
++pub const R_SW_64_TPRELHI: u32 = 39;
++#[allow(missing_docs)]
++pub const R_SW_64_TPRELLO: u32 = 40;
++#[allow(missing_docs)]
++pub const R_SW_64_TPREL16: u32 = 41;
++
++// Magic values of the `R_SW_64_LITUSE` relocation addend.
++#[allow(missing_docs)]
++pub const LITUSE_SW_64_ADDR: u32 = 0;
++#[allow(missing_docs)]
++pub const LITUSE_SW_64_BASE: u32 = 1;
++#[allow(missing_docs)]
++pub const LITUSE_SW_64_BYTOFF: u32 = 2;
++#[allow(missing_docs)]
++pub const LITUSE_SW_64_JSR: u32 = 3;
++#[allow(missing_docs)]
++pub const LITUSE_SW_64_TLS_GD: u32 = 4;
++#[allow(missing_docs)]
++pub const LITUSE_SW_64_TLS_LDM: u32 = 5;
++
++// Sw64 values for `Dyn64::d_tag`.
++#[allow(missing_docs)]
++pub const DT_SW_64_PLTRO: u32 = DT_LOPROC + 0;
++
+ // PowerPC specific declarations.
+
+ // PowerPC values for `FileHeader*::e_flags`.
+@@ -3826,10 +3942,6 @@ pub fn gnu_hash(name: &[u8]) -> u32 {
+ /// ARM attributes section.
+ pub const SHT_ARM_ATTRIBUTES: u32 = SHT_LOPROC + 3;
+
+-// AArch64 values for `SectionHeader*::sh_type`.
+-/// AArch64 attributes section.
+-pub const SHT_AARCH64_ATTRIBUTES: u32 = SHT_LOPROC + 3;
+-
+ // AArch64 values for `Rel*::r_type`.
+
+ /// No relocation.
+diff --git a/vendor/object-0.33.0/src/read/elf/file.rs b/vendor/object-0.33.0/src/read/elf/file.rs
+index 872215d4148..7780db934cf 100644
+--- a/vendor/object-0.33.0/src/read/elf/file.rs
++++ b/vendor/object-0.33.0/src/read/elf/file.rs
+@@ -177,6 +177,7 @@ fn architecture(&self) -> Architecture {
+ (elf::EM_LOONGARCH, true) => Architecture::LoongArch64,
+ (elf::EM_MIPS, false) => Architecture::Mips,
+ (elf::EM_MIPS, true) => Architecture::Mips64,
++ (elf::EM_SW_64, true) => Architecture::Sw64,
+ (elf::EM_MSP430, _) => Architecture::Msp430,
+ (elf::EM_PPC, _) => Architecture::PowerPc,
+ (elf::EM_PPC64, _) => Architecture::PowerPc64,
+diff --git a/vendor/object-0.33.0/src/read/elf/relocation.rs b/vendor/object-0.33.0/src/read/elf/relocation.rs
+index 1f43efe5213..28f1ae2a537 100644
+--- a/vendor/object-0.33.0/src/read/elf/relocation.rs
++++ b/vendor/object-0.33.0/src/read/elf/relocation.rs
+@@ -463,6 +463,11 @@ fn parse_relocation<Elf: FileHeader>(
+ elf::R_SPARC_64 | elf::R_SPARC_UA64 => (RelocationKind::Absolute, 64),
+ _ => (RelocationKind::Unknown, 0),
+ },
++ elf::EM_SW_64 => match r_type {
++ elf::R_SW_64_REFLONG => (RelocationKind::Absolute, 32),
++ elf::R_SW_64_REFQUAD => (RelocationKind::Relative, 64),
++ _ => (RelocationKind::Unknown, 0),
++ },
+ elf::EM_XTENSA => match r_type {
+ elf::R_XTENSA_32 => (RelocationKind::Absolute, 32),
+ elf::R_XTENSA_32_PCREL => (RelocationKind::Relative, 32),
+diff --git a/vendor/object-0.36.2/src/common.rs b/vendor/object-0.36.2/src/common.rs
+index c9db8c332a4..280296da3fa 100644
+--- a/vendor/object-0.36.2/src/common.rs
++++ b/vendor/object-0.36.2/src/common.rs
+@@ -30,6 +30,7 @@ pub enum Architecture {
+ Sparc,
+ Sparc32Plus,
+ Sparc64,
++ Sw64,
+ Wasm32,
+ Wasm64,
+ Xtensa,
+@@ -75,6 +76,7 @@ pub fn address_size(self) -> Option<AddressSize> {
+ Architecture::Sparc => Some(AddressSize::U32),
+ Architecture::Sparc32Plus => Some(AddressSize::U32),
+ Architecture::Sparc64 => Some(AddressSize::U64),
++ Architecture::Sw64 => Some(AddressSize::U64),
+ Architecture::Wasm32 => Some(AddressSize::U32),
+ Architecture::Wasm64 => Some(AddressSize::U64),
+ Architecture::Xtensa => Some(AddressSize::U32),
+diff --git a/vendor/object-0.36.2/src/elf.rs b/vendor/object-0.36.2/src/elf.rs
+index c9c53bf1128..5b33079cfb8 100644
+--- a/vendor/object-0.36.2/src/elf.rs
++++ b/vendor/object-0.36.2/src/elf.rs
+@@ -3333,6 +3333,122 @@ pub fn gnu_hash(name: &[u8]) -> u32 {
+ // Alpha values for `Dyn64::d_tag`.
+ pub const DT_ALPHA_PLTRO: u32 = DT_LOPROC + 0;
+
++// Sw64 specific definitions.
++
++// Sw64 values for `FileHeader64::e_flags`.
++pub const EM_SW_64:u16 = 0x9916;
++
++/// All addresses must be < 2GB.
++pub const EF_SW_64_32BIT: u32 = 1;
++/// Relocations for relaxing exist.
++pub const EF_SW_64_CANRELAX: u32 = 2;
++
++// Sw64 values for `SectionHeader64::sh_type`.
++
++// These two are primerily concerned with ECOFF debugging info.
++#[allow(missing_docs)]
++pub const SHT_SW_64_DEBUG: u32 = 0x7000_0001;
++#[allow(missing_docs)]
++pub const SHT_SW_64_REGINFO: u32 = 0x7000_0002;
++
++// Sw64 values for `SectionHeader64::sh_flags`.
++
++#[allow(missing_docs)]
++pub const SHF_SW_64_GPREL: u32 = 0x1000_0000;
++
++// Sw64 values for `Sym64::st_other`.
++/// No PV required.
++pub const STO_SW_64_NOPV: u8 = 0x80;
++/// PV only used for initial ldgp.
++pub const STO_SW_64_STD_GPLOAD: u8 = 0x88;
++
++// Sw64 values for `Rel64::r_type`.
++
++/// No reloc
++pub const R_SW_64_NONE: u32 = 0;
++/// Direct 32 bit
++pub const R_SW_64_REFLONG: u32 = 1;
++/// Direct 64 bit
++pub const R_SW_64_REFQUAD: u32 = 2;
++/// GP relative 32 bit
++pub const R_SW_64_GPREL32: u32 = 3;
++/// GP relative 16 bit w/optimization
++pub const R_SW_64_LITERAL: u32 = 4;
++/// Optimization hint for LITERAL
++pub const R_SW_64_LITUSE: u32 = 5;
++/// Add displacement to GP
++pub const R_SW_64_GPDISP: u32 = 6;
++/// PC+4 relative 23 bit shifted
++pub const R_SW_64_BRADDR: u32 = 7;
++/// PC+4 relative 16 bit shifted
++pub const R_SW_64_HINT: u32 = 8;
++/// PC relative 16 bit
++pub const R_SW_64_SREL16: u32 = 9;
++/// PC relative 32 bit
++pub const R_SW_64_SREL32: u32 = 10;
++/// PC relative 64 bit
++pub const R_SW_64_SREL64: u32 = 11;
++/// GP relative 32 bit, high 16 bits
++pub const R_SW_64_GPRELHIGH: u32 = 17;
++/// GP relative 32 bit, low 16 bits
++pub const R_SW_64_GPRELLOW: u32 = 18;
++/// GP relative 16 bit
++pub const R_SW_64_GPREL16: u32 = 19;
++/// Copy symbol at runtime
++pub const R_SW_64_COPY: u32 = 24;
++/// Create GOT entry
++pub const R_SW_64_GLOB_DAT: u32 = 25;
++/// Create PLT entry
++pub const R_SW_64_JMP_SLOT: u32 = 26;
++/// Adjust by program base
++pub const R_SW_64_RELATIVE: u32 = 27;
++#[allow(missing_docs)]
++pub const R_SW_64_TLS_GD_HI: u32 = 28;
++#[allow(missing_docs)]
++pub const R_SW_64_TLSGD: u32 = 29;
++#[allow(missing_docs)]
++pub const R_SW_64_TLS_LDM: u32 = 30;
++#[allow(missing_docs)]
++pub const R_SW_64_DTPMOD64: u32 = 31;
++#[allow(missing_docs)]
++pub const R_SW_64_GOTDTPREL: u32 = 32;
++#[allow(missing_docs)]
++pub const R_SW_64_DTPREL64: u32 = 33;
++#[allow(missing_docs)]
++pub const R_SW_64_DTPRELHI: u32 = 34;
++#[allow(missing_docs)]
++pub const R_SW_64_DTPRELLO: u32 = 35;
++#[allow(missing_docs)]
++pub const R_SW_64_DTPREL16: u32 = 36;
++#[allow(missing_docs)]
++pub const R_SW_64_GOTTPREL: u32 = 37;
++#[allow(missing_docs)]
++pub const R_SW_64_TPREL64: u32 = 38;
++#[allow(missing_docs)]
++pub const R_SW_64_TPRELHI: u32 = 39;
++#[allow(missing_docs)]
++pub const R_SW_64_TPRELLO: u32 = 40;
++#[allow(missing_docs)]
++pub const R_SW_64_TPREL16: u32 = 41;
++
++// Magic values of the `R_SW_64_LITUSE` relocation addend.
++#[allow(missing_docs)]
++pub const LITUSE_SW_64_ADDR: u32 = 0;
++#[allow(missing_docs)]
++pub const LITUSE_SW_64_BASE: u32 = 1;
++#[allow(missing_docs)]
++pub const LITUSE_SW_64_BYTOFF: u32 = 2;
++#[allow(missing_docs)]
++pub const LITUSE_SW_64_JSR: u32 = 3;
++#[allow(missing_docs)]
++pub const LITUSE_SW_64_TLS_GD: u32 = 4;
++#[allow(missing_docs)]
++pub const LITUSE_SW_64_TLS_LDM: u32 = 5;
++
++// Sw64 values for `Dyn64::d_tag`.
++#[allow(missing_docs)]
++pub const DT_SW_64_PLTRO: u32 = DT_LOPROC + 0;
++
+ // PowerPC specific declarations.
+
+ // PowerPC values for `FileHeader*::e_flags`.
+diff --git a/vendor/object-0.36.2/src/read/elf/file.rs b/vendor/object-0.36.2/src/read/elf/file.rs
+index eb74c284ed2..93a3f7ed105 100644
+--- a/vendor/object-0.36.2/src/read/elf/file.rs
++++ b/vendor/object-0.36.2/src/read/elf/file.rs
+@@ -229,6 +229,7 @@ fn architecture(&self) -> Architecture {
+ (elf::EM_SPARC, false) => Architecture::Sparc,
+ (elf::EM_SPARC32PLUS, false) => Architecture::Sparc32Plus,
+ (elf::EM_SPARCV9, true) => Architecture::Sparc64,
++ (elf::EM_SW_64, true) => Architecture::Sw64,
+ (elf::EM_XTENSA, false) => Architecture::Xtensa,
+ _ => Architecture::Unknown,
+ }
+diff --git a/vendor/object-0.36.2/src/read/elf/relocation.rs b/vendor/object-0.36.2/src/read/elf/relocation.rs
+index 3790e027916..b1261280e8f 100644
+--- a/vendor/object-0.36.2/src/read/elf/relocation.rs
++++ b/vendor/object-0.36.2/src/read/elf/relocation.rs
+@@ -352,6 +352,11 @@ fn parse_relocation<Elf: FileHeader>(
+ elf::R_MIPS_64 => (RelocationKind::Absolute, 64),
+ _ => (RelocationKind::Unknown, 0),
+ },
++ elf::EM_SW_64 => match r_type {
++ elf::R_SW_64_REFLONG => (RelocationKind::Absolute, 32),
++ elf::R_SW_64_REFQUAD => (RelocationKind::Absolute, 64),
++ r_type => (RelocationKind::Unknown, 0),
++ },
+ elf::EM_MSP430 => match r_type {
+ elf::R_MSP430_32 => (RelocationKind::Absolute, 32),
+ elf::R_MSP430_16_BYTE => (RelocationKind::Absolute, 16),
+diff --git a/vendor/object-0.36.2/src/write/elf/object.rs b/vendor/object-0.36.2/src/write/elf/object.rs
+index 0920a0dd193..a479a1eb3d1 100644
+--- a/vendor/object-0.36.2/src/write/elf/object.rs
++++ b/vendor/object-0.36.2/src/write/elf/object.rs
+@@ -133,6 +133,7 @@ fn elf_has_relocation_addend(&self) -> Result<bool> {
+ Architecture::LoongArch64 => true,
+ Architecture::Mips => false,
+ Architecture::Mips64 => true,
++ Architecture::Sw64 => true,
+ Architecture::Msp430 => true,
+ Architecture::PowerPc => true,
+ Architecture::PowerPc64 => true,
+@@ -294,6 +295,13 @@ pub(crate) fn elf_translate_relocation(&mut self, reloc: &mut Relocation) -> Res
+ return Err(Error(format!("unimplemented relocation {:?}", reloc)));
+ }
+ },
++ Architecture::Sw64 => match (kind, encoding, size) {
++ (RelocationKind::Absolute, _, 32) => elf::R_SW_64_REFLONG,
++ (RelocationKind::Absolute, _, 64) => elf::R_SW_64_REFQUAD,
++ _ => {
++ return Err(Error(format!("unimplemented relocation {:?}", reloc)));
++ }
++ },
+ Architecture::Msp430 => match (kind, encoding, size) {
+ (RelocationKind::Absolute, _, 32) => elf::R_MSP430_32,
+ (RelocationKind::Absolute, _, 16) => elf::R_MSP430_16_BYTE,
+@@ -632,6 +640,7 @@ pub(crate) fn elf_write(&self, buffer: &mut dyn WritableBuffer) -> Result<()> {
+ (Architecture::LoongArch64, None) => elf::EM_LOONGARCH,
+ (Architecture::Mips, None) => elf::EM_MIPS,
+ (Architecture::Mips64, None) => elf::EM_MIPS,
++ (Architecture::Sw64, None) => elf::EM_SW_64,
+ (Architecture::Msp430, None) => elf::EM_MSP430,
+ (Architecture::PowerPc, None) => elf::EM_PPC,
+ (Architecture::PowerPc64, None) => elf::EM_PPC64,
+diff --git a/vendor/object-0.36.3/src/common.rs b/vendor/object-0.36.3/src/common.rs
+index c9db8c332a4..280296da3fa 100644
+--- a/vendor/object-0.36.3/src/common.rs
++++ b/vendor/object-0.36.3/src/common.rs
+@@ -30,6 +30,7 @@ pub enum Architecture {
+ Sparc,
+ Sparc32Plus,
+ Sparc64,
++ Sw64,
+ Wasm32,
+ Wasm64,
+ Xtensa,
+@@ -75,6 +76,7 @@ pub fn address_size(self) -> Option<AddressSize> {
+ Architecture::Sparc => Some(AddressSize::U32),
+ Architecture::Sparc32Plus => Some(AddressSize::U32),
+ Architecture::Sparc64 => Some(AddressSize::U64),
++ Architecture::Sw64 => Some(AddressSize::U64),
+ Architecture::Wasm32 => Some(AddressSize::U32),
+ Architecture::Wasm64 => Some(AddressSize::U64),
+ Architecture::Xtensa => Some(AddressSize::U32),
+diff --git a/vendor/object-0.36.3/src/elf.rs b/vendor/object-0.36.3/src/elf.rs
+index c9c53bf1128..5b33079cfb8 100644
+--- a/vendor/object-0.36.3/src/elf.rs
++++ b/vendor/object-0.36.3/src/elf.rs
+@@ -3333,6 +3333,122 @@ pub fn gnu_hash(name: &[u8]) -> u32 {
+ // Alpha values for `Dyn64::d_tag`.
+ pub const DT_ALPHA_PLTRO: u32 = DT_LOPROC + 0;
+
++// Sw64 specific definitions.
++
++// Sw64 values for `FileHeader64::e_flags`.
++pub const EM_SW_64:u16 = 0x9916;
++
++/// All addresses must be < 2GB.
++pub const EF_SW_64_32BIT: u32 = 1;
++/// Relocations for relaxing exist.
++pub const EF_SW_64_CANRELAX: u32 = 2;
++
++// Sw64 values for `SectionHeader64::sh_type`.
++
++// These two are primerily concerned with ECOFF debugging info.
++#[allow(missing_docs)]
++pub const SHT_SW_64_DEBUG: u32 = 0x7000_0001;
++#[allow(missing_docs)]
++pub const SHT_SW_64_REGINFO: u32 = 0x7000_0002;
++
++// Sw64 values for `SectionHeader64::sh_flags`.
++
++#[allow(missing_docs)]
++pub const SHF_SW_64_GPREL: u32 = 0x1000_0000;
++
++// Sw64 values for `Sym64::st_other`.
++/// No PV required.
++pub const STO_SW_64_NOPV: u8 = 0x80;
++/// PV only used for initial ldgp.
++pub const STO_SW_64_STD_GPLOAD: u8 = 0x88;
++
++// Sw64 values for `Rel64::r_type`.
++
++/// No reloc
++pub const R_SW_64_NONE: u32 = 0;
++/// Direct 32 bit
++pub const R_SW_64_REFLONG: u32 = 1;
++/// Direct 64 bit
++pub const R_SW_64_REFQUAD: u32 = 2;
++/// GP relative 32 bit
++pub const R_SW_64_GPREL32: u32 = 3;
++/// GP relative 16 bit w/optimization
++pub const R_SW_64_LITERAL: u32 = 4;
++/// Optimization hint for LITERAL
++pub const R_SW_64_LITUSE: u32 = 5;
++/// Add displacement to GP
++pub const R_SW_64_GPDISP: u32 = 6;
++/// PC+4 relative 23 bit shifted
++pub const R_SW_64_BRADDR: u32 = 7;
++/// PC+4 relative 16 bit shifted
++pub const R_SW_64_HINT: u32 = 8;
++/// PC relative 16 bit
++pub const R_SW_64_SREL16: u32 = 9;
++/// PC relative 32 bit
++pub const R_SW_64_SREL32: u32 = 10;
++/// PC relative 64 bit
++pub const R_SW_64_SREL64: u32 = 11;
++/// GP relative 32 bit, high 16 bits
++pub const R_SW_64_GPRELHIGH: u32 = 17;
++/// GP relative 32 bit, low 16 bits
++pub const R_SW_64_GPRELLOW: u32 = 18;
++/// GP relative 16 bit
++pub const R_SW_64_GPREL16: u32 = 19;
++/// Copy symbol at runtime
++pub const R_SW_64_COPY: u32 = 24;
++/// Create GOT entry
++pub const R_SW_64_GLOB_DAT: u32 = 25;
++/// Create PLT entry
++pub const R_SW_64_JMP_SLOT: u32 = 26;
++/// Adjust by program base
++pub const R_SW_64_RELATIVE: u32 = 27;
++#[allow(missing_docs)]
++pub const R_SW_64_TLS_GD_HI: u32 = 28;
++#[allow(missing_docs)]
++pub const R_SW_64_TLSGD: u32 = 29;
++#[allow(missing_docs)]
++pub const R_SW_64_TLS_LDM: u32 = 30;
++#[allow(missing_docs)]
++pub const R_SW_64_DTPMOD64: u32 = 31;
++#[allow(missing_docs)]
++pub const R_SW_64_GOTDTPREL: u32 = 32;
++#[allow(missing_docs)]
++pub const R_SW_64_DTPREL64: u32 = 33;
++#[allow(missing_docs)]
++pub const R_SW_64_DTPRELHI: u32 = 34;
++#[allow(missing_docs)]
++pub const R_SW_64_DTPRELLO: u32 = 35;
++#[allow(missing_docs)]
++pub const R_SW_64_DTPREL16: u32 = 36;
++#[allow(missing_docs)]
++pub const R_SW_64_GOTTPREL: u32 = 37;
++#[allow(missing_docs)]
++pub const R_SW_64_TPREL64: u32 = 38;
++#[allow(missing_docs)]
++pub const R_SW_64_TPRELHI: u32 = 39;
++#[allow(missing_docs)]
++pub const R_SW_64_TPRELLO: u32 = 40;
++#[allow(missing_docs)]
++pub const R_SW_64_TPREL16: u32 = 41;
++
++// Magic values of the `R_SW_64_LITUSE` relocation addend.
++#[allow(missing_docs)]
++pub const LITUSE_SW_64_ADDR: u32 = 0;
++#[allow(missing_docs)]
++pub const LITUSE_SW_64_BASE: u32 = 1;
++#[allow(missing_docs)]
++pub const LITUSE_SW_64_BYTOFF: u32 = 2;
++#[allow(missing_docs)]
++pub const LITUSE_SW_64_JSR: u32 = 3;
++#[allow(missing_docs)]
++pub const LITUSE_SW_64_TLS_GD: u32 = 4;
++#[allow(missing_docs)]
++pub const LITUSE_SW_64_TLS_LDM: u32 = 5;
++
++// Sw64 values for `Dyn64::d_tag`.
++#[allow(missing_docs)]
++pub const DT_SW_64_PLTRO: u32 = DT_LOPROC + 0;
++
+ // PowerPC specific declarations.
+
+ // PowerPC values for `FileHeader*::e_flags`.
+diff --git a/vendor/object-0.36.3/src/read/elf/file.rs b/vendor/object-0.36.3/src/read/elf/file.rs
+index eb74c284ed2..93a3f7ed105 100644
+--- a/vendor/object-0.36.3/src/read/elf/file.rs
++++ b/vendor/object-0.36.3/src/read/elf/file.rs
+@@ -229,6 +229,7 @@ fn architecture(&self) -> Architecture {
+ (elf::EM_SPARC, false) => Architecture::Sparc,
+ (elf::EM_SPARC32PLUS, false) => Architecture::Sparc32Plus,
+ (elf::EM_SPARCV9, true) => Architecture::Sparc64,
++ (elf::EM_SW_64, true) => Architecture::Sw64,
+ (elf::EM_XTENSA, false) => Architecture::Xtensa,
+ _ => Architecture::Unknown,
+ }
+diff --git a/vendor/object-0.36.3/src/read/elf/relocation.rs b/vendor/object-0.36.3/src/read/elf/relocation.rs
+index 3790e027916..b1261280e8f 100644
+--- a/vendor/object-0.36.3/src/read/elf/relocation.rs
++++ b/vendor/object-0.36.3/src/read/elf/relocation.rs
+@@ -352,6 +352,11 @@ fn parse_relocation<Elf: FileHeader>(
+ elf::R_MIPS_64 => (RelocationKind::Absolute, 64),
+ _ => (RelocationKind::Unknown, 0),
+ },
++ elf::EM_SW_64 => match r_type {
++ elf::R_SW_64_REFLONG => (RelocationKind::Absolute, 32),
++ elf::R_SW_64_REFQUAD => (RelocationKind::Absolute, 64),
++ r_type => (RelocationKind::Unknown, 0),
++ },
+ elf::EM_MSP430 => match r_type {
+ elf::R_MSP430_32 => (RelocationKind::Absolute, 32),
+ elf::R_MSP430_16_BYTE => (RelocationKind::Absolute, 16),
+diff --git a/vendor/object-0.36.3/src/write/elf/object.rs b/vendor/object-0.36.3/src/write/elf/object.rs
+index 0920a0dd193..a479a1eb3d1 100644
+--- a/vendor/object-0.36.3/src/write/elf/object.rs
++++ b/vendor/object-0.36.3/src/write/elf/object.rs
+@@ -133,6 +133,7 @@ fn elf_has_relocation_addend(&self) -> Result<bool> {
+ Architecture::LoongArch64 => true,
+ Architecture::Mips => false,
+ Architecture::Mips64 => true,
++ Architecture::Sw64 => true,
+ Architecture::Msp430 => true,
+ Architecture::PowerPc => true,
+ Architecture::PowerPc64 => true,
+@@ -294,6 +295,13 @@ pub(crate) fn elf_translate_relocation(&mut self, reloc: &mut Relocation) -> Res
+ return Err(Error(format!("unimplemented relocation {:?}", reloc)));
+ }
+ },
++ Architecture::Sw64 => match (kind, encoding, size) {
++ (RelocationKind::Absolute, _, 32) => elf::R_SW_64_REFLONG,
++ (RelocationKind::Absolute, _, 64) => elf::R_SW_64_REFQUAD,
++ _ => {
++ return Err(Error(format!("unimplemented relocation {:?}", reloc)));
++ }
++ },
+ Architecture::Msp430 => match (kind, encoding, size) {
+ (RelocationKind::Absolute, _, 32) => elf::R_MSP430_32,
+ (RelocationKind::Absolute, _, 16) => elf::R_MSP430_16_BYTE,
+@@ -632,6 +640,7 @@ pub(crate) fn elf_write(&self, buffer: &mut dyn WritableBuffer) -> Result<()> {
+ (Architecture::LoongArch64, None) => elf::EM_LOONGARCH,
+ (Architecture::Mips, None) => elf::EM_MIPS,
+ (Architecture::Mips64, None) => elf::EM_MIPS,
++ (Architecture::Sw64, None) => elf::EM_SW_64,
+ (Architecture::Msp430, None) => elf::EM_MSP430,
+ (Architecture::PowerPc, None) => elf::EM_PPC,
+ (Architecture::PowerPc64, None) => elf::EM_PPC64,
+diff --git a/vendor/psm-0.1.21/build.rs b/vendor/psm-0.1.21/build.rs
+index 9d40212eb85..29fb0de2ffe 100644
+--- a/vendor/psm-0.1.21/build.rs
++++ b/vendor/psm-0.1.21/build.rs
+@@ -52,6 +52,7 @@ fn find_assembly(
+ ("riscv64", _, _, _) => Some(("src/arch/riscv64.s", true)),
+ ("wasm32", _, _, _) => Some(("src/arch/wasm32.o", true)),
+ ("loongarch64", _, _, _) => Some(("src/arch/loongarch64.s", true)),
++ ("sw64", _, _, _) => Some(("src/arch/sw64.s", true)),
+ _ => None,
+ }
+ }
+diff --git a/vendor/psm-0.1.21/src/arch/sw64.s b/vendor/psm-0.1.21/src/arch/sw64.s
+new file mode 100644
+index 00000000000..96ebb100035
+--- /dev/null
++++ b/vendor/psm-0.1.21/src/arch/sw64.s
+@@ -0,0 +1,88 @@
++/*
++Not only SW64 has 20 different ABIs... nobody tells anybody what specific variant of which ABI is
++used where.
++
++This is an "EABI" implementation based on the following page:
++
++http://www.cygwin.com/ml/binutils/2003-06/msg00436.html
++*/
++
++#include "psm.h"
++
++.set noreorder /* we’ll manage the delay slots on our own, thanks! */
++
++.text
++.globl rust_psm_stack_direction
++.p2align 2
++.type rust_psm_stack_direction,@function
++.ent rust_psm_stack_direction
++/* extern "C" fn() -> u8 */
++rust_psm_stack_direction:
++.cfi_startproc
++ addw $31, STACK_DIRECTION_DESCENDING, $0
++ ret $31, ($26), 1
++.end rust_psm_stack_direction
++.rust_psm_stack_direction_end:
++.size rust_psm_stack_direction,.rust_psm_stack_direction_end-rust_psm_stack_direction
++.cfi_endproc
++
++
++.globl rust_psm_stack_pointer
++.p2align 2
++.type rust_psm_stack_pointer,@function
++.ent rust_psm_stack_pointer
++/* extern "C" fn() -> *mut u8 */
++rust_psm_stack_pointer:
++.cfi_startproc
++ mov $30, $0
++ ret $31, ($26), 1
++.end rust_psm_stack_pointer
++.rust_psm_stack_pointer_end:
++.size rust_psm_stack_pointer,.rust_psm_stack_pointer_end-rust_psm_stack_pointer
++.cfi_endproc
++
++
++.globl rust_psm_replace_stack
++.p2align 2
++.type rust_psm_replace_stack,@function
++.ent rust_psm_replace_stack
++/* extern "C" fn(r16: usize, r17: extern "C" fn(usize), r18: *mut u8) */
++rust_psm_replace_stack:
++.cfi_startproc
++ mov $30, $18
++ jmp $31, ($17)
++.end rust_psm_replace_stack
++.rust_psm_replace_stack_end:
++.size rust_psm_replace_stack,.rust_psm_on_stack_end-rust_psm_on_stack
++.cfi_endproc
++
++
++.globl rust_psm_on_stack
++.p2align 2
++.type rust_psm_on_stack,@function
++.ent rust_psm_on_stack
++/* extern "C" fn(r16: usize, r17: usize, r18: extern "C" fn(usize), r19: *mut u8) */
++rust_psm_on_stack:
++.cfi_startproc
++ ldi $30, -16($30)
++ .cfi_def_cfa_offset 16
++ stl $26, 0($30)
++ stl $15, 8($30)
++ .cfi_offset 26, -16
++ .cfi_offset 15, -8
++ mov $30, $15
++ .cfi_def_cfa_register 15
++ bis $19, $19, $30
++ call $26, ($18), 0
++ mov $15, $30
++ ldl $26, 0($30)
++ ldl $15, 8($30)
++ ldi $30, 16($30)
++ .cfi_restore 15
++ .cfi_restore 26
++ .cfi_def_cfa 30, 0
++ ret $31, ($26), 1
++.end rust_psm_on_stack
++.rust_psm_on_stack_end:
++.size rust_psm_on_stack,.rust_psm_on_stack_end-rust_psm_on_stack
++.cfi_endproc
+diff --git a/vendor/rustix-0.38.34/build.rs b/vendor/rustix-0.38.34/build.rs
+index d14c2ddf6c2..11fa6babce0 100644
+--- a/vendor/rustix-0.38.34/build.rs
++++ b/vendor/rustix-0.38.34/build.rs
+@@ -94,7 +94,7 @@ fn main() {
+ || !inline_asm_name_present
+ || is_unsupported_abi
+ || miri
+- || ((arch == "powerpc64" || arch.starts_with("mips")) && !rustix_use_experimental_asm);
++ || ((arch == "powerpc64" || arch.starts_with("mips") || arch.starts_with("sw")) && !rustix_use_experimental_asm);
+ if libc {
+ // Use the libc backend.
+ use_feature("libc");
+diff --git a/vendor/rustix-0.38.34/src/backend/libc/c.rs b/vendor/rustix-0.38.34/src/backend/libc/c.rs
+index 02958698c06..dc529c09b94 100644
+--- a/vendor/rustix-0.38.34/src/backend/libc/c.rs
++++ b/vendor/rustix-0.38.34/src/backend/libc/c.rs
+@@ -108,7 +108,7 @@
+ #[cfg(all(
+ linux_kernel,
+ feature = "termios",
+- any(target_arch = "powerpc", target_arch = "powerpc64")
++ any(target_arch = "powerpc", target_arch = "powerpc64", target_arch = "sw64")
+ ))]
+ pub(crate) use {
+ linux_raw_sys::general::{termios2, CIBAUD},
+diff --git a/vendor/rustix-0.38.34/src/backend/libc/fs/syscalls.rs b/vendor/rustix-0.38.34/src/backend/libc/fs/syscalls.rs
+index b87f1ccde96..dbe6e5906bf 100644
+--- a/vendor/rustix-0.38.34/src/backend/libc/fs/syscalls.rs
++++ b/vendor/rustix-0.38.34/src/backend/libc/fs/syscalls.rs
+@@ -105,7 +105,8 @@ fn open_via_syscall(path: &CStr, oflags: OFlags, mode: Mode) -> io::Result<Owned
+ target_arch = "riscv32",
+ target_arch = "riscv64",
+ target_arch = "csky",
+- target_arch = "loongarch64"
++ target_arch = "loongarch64",
++ target_arch = "sw64"
+ ))]
+ {
+ openat_via_syscall(CWD, path, oflags, mode)
+@@ -117,7 +118,8 @@ fn open_via_syscall(path: &CStr, oflags: OFlags, mode: Mode) -> io::Result<Owned
+ target_arch = "riscv32",
+ target_arch = "riscv64",
+ target_arch = "csky",
+- target_arch = "loongarch64"
++ target_arch = "loongarch64",
++ target_arch = "sw64"
+ )))]
+ unsafe {
+ syscall! {
+diff --git a/vendor/rustix-0.38.34/src/backend/libc/termios/syscalls.rs b/vendor/rustix-0.38.34/src/backend/libc/termios/syscalls.rs
+index a833aea8d1d..fb4e863544c 100644
+--- a/vendor/rustix-0.38.34/src/backend/libc/termios/syscalls.rs
++++ b/vendor/rustix-0.38.34/src/backend/libc/termios/syscalls.rs
+@@ -42,7 +42,7 @@ pub(crate) fn tcgetattr(fd: BorrowedFd<'_>) -> io::Result<Termios> {
+
+ // QEMU's `TCGETS2` doesn't currently set `input_speed` or
+ // `output_speed` on PowerPC, so zero out the fields ourselves.
+- #[cfg(any(target_arch = "powerpc", target_arch = "powerpc64"))]
++ #[cfg(any(target_arch = "powerpc", target_arch = "powerpc64", target_arch = "sw64"))]
+ {
+ termios2.write(core::mem::zeroed());
+ }
+@@ -70,7 +70,7 @@ pub(crate) fn tcgetattr(fd: BorrowedFd<'_>) -> io::Result<Termios> {
+
+ // QEMU's `TCGETS2` doesn't currently set `input_speed` or
+ // `output_speed` on PowerPC, so set them manually if we can.
+- #[cfg(any(target_arch = "powerpc", target_arch = "powerpc64"))]
++ #[cfg(any(target_arch = "powerpc", target_arch = "powerpc64", target_arch = "sw64"))]
+ {
+ use crate::termios::speed;
+
+diff --git a/vendor/rustix-0.38.34/src/backend/linux_raw/arch/mod.rs b/vendor/rustix-0.38.34/src/backend/linux_raw/arch/mod.rs
+index ac9e25fa7cb..2f8d179791f 100644
+--- a/vendor/rustix-0.38.34/src/backend/linux_raw/arch/mod.rs
++++ b/vendor/rustix-0.38.34/src/backend/linux_raw/arch/mod.rs
+@@ -31,6 +31,7 @@
+ #[cfg_attr(target_arch = "mips64", path = "mips64.rs")]
+ #[cfg_attr(target_arch = "mips64r6", path = "mips64r6.rs")]
+ #[cfg_attr(target_arch = "powerpc64", path = "powerpc64.rs")]
++#[cfg_attr(target_arch = "sw64", path = "sw64.rs")]
+ #[cfg_attr(target_arch = "riscv64", path = "riscv64.rs")]
+ #[cfg_attr(target_arch = "x86", path = "x86.rs")]
+ #[cfg_attr(target_arch = "x86_64", path = "x86_64.rs")]
+diff --git a/vendor/rustix-0.38.34/src/ioctl/linux.rs b/vendor/rustix-0.38.34/src/ioctl/linux.rs
+index 2f3599fc2a8..0bdef123ace 100644
+--- a/vendor/rustix-0.38.34/src/ioctl/linux.rs
++++ b/vendor/rustix-0.38.34/src/ioctl/linux.rs
+@@ -68,6 +68,7 @@ mod consts {
+ target_arch = "mips32r6",
+ target_arch = "mips64",
+ target_arch = "mips64r6",
++ target_arch = "sw64",
+ target_arch = "powerpc",
+ target_arch = "powerpc64",
+ target_arch = "sparc",
+diff --git a/vendor/rustix-0.38.34/src/signal.rs b/vendor/rustix-0.38.34/src/signal.rs
+index e55126f371e..bd8ba387ca1 100644
+--- a/vendor/rustix-0.38.34/src/signal.rs
++++ b/vendor/rustix-0.38.34/src/signal.rs
+@@ -60,7 +60,8 @@ pub enum Signal {
+ target_arch = "mips64",
+ target_arch = "mips64r6",
+ target_arch = "sparc",
+- target_arch = "sparc64"
++ target_arch = "sparc64",
++ target_arch = "sw64"
+ ),
+ )
+ )))]
+@@ -181,7 +182,8 @@ pub fn from_raw(sig: c::c_int) -> Option<Self> {
+ target_arch = "mips64",
+ target_arch = "mips64r6",
+ target_arch = "sparc",
+- target_arch = "sparc64"
++ target_arch = "sparc64",
++ target_arch = "sw64"
+ ),
+ )
+ )))]
+diff --git a/vendor/rustix-0.38.34/src/termios/types.rs b/vendor/rustix-0.38.34/src/termios/types.rs
+index 57e9a5d2071..680e4091282 100644
+--- a/vendor/rustix-0.38.34/src/termios/types.rs
++++ b/vendor/rustix-0.38.34/src/termios/types.rs
+@@ -817,7 +817,7 @@ pub mod speed {
+ bsd,
+ all(
+ linux_kernel,
+- not(any(target_arch = "powerpc", target_arch = "powerpc64"))
++ not(any(target_arch = "powerpc", target_arch = "powerpc64" , target_arch = "sw64"))
+ )
+ )))]
+ pub(crate) const fn decode(encoded_speed: c::speed_t) -> Option<u32> {
+@@ -1279,14 +1279,14 @@ fn termios_layouts() {
+
+ // On everything except PowerPC, `termios` matches `termios2` except
+ // for the addition of `c_ispeed` and `c_ospeed`.
+- #[cfg(not(any(target_arch = "powerpc", target_arch = "powerpc64")))]
++ #[cfg(not(any(target_arch = "powerpc", target_arch = "powerpc64", target_arch = "sw64")))]
+ const_assert_eq!(
+ memoffset::offset_of!(Termios, input_speed),
+ core::mem::size_of::<c::termios>()
+ );
+
+ // On PowerPC, `termios2` is `termios`.
+- #[cfg(any(target_arch = "powerpc", target_arch = "powerpc64"))]
++ #[cfg(any(target_arch = "powerpc", target_arch = "powerpc64", target_arch = "sw64"))]
+ assert_eq_size!(c::termios2, c::termios);
+ }
+
+--
+2.33.0
+
diff --git a/0001-compiler-rt-Support-HARDCODE_NO_LSE-to-disable-lse-a.patch b/0001-compiler-rt-Support-HARDCODE_NO_LSE-to-disable-lse-a.patch
new file mode 100644
index 0000000..baac454
--- /dev/null
+++ b/0001-compiler-rt-Support-HARDCODE_NO_LSE-to-disable-lse-a.patch
@@ -0,0 +1,113 @@
+From 8ed31fc5c8722d5f94a90e28cdc8d99fd66f943e Mon Sep 17 00:00:00 2001
+From: eshiner <zengfuliangjx@sina.cn>
+Date: Tue, 23 Sep 2025 17:27:15 +0800
+Subject: [PATCH] [compiler-rt] Support HARDCODE_NO_LSE to disable lse atomic
+
+Currently in compiler-rt, using dynamic detect for LSE support.
+But for some soc/ship, there was something wrong with LSE atomic
+instructions, so we need DISBALE it by HARDCODE.
+
+Signed-off-by: eshiner <zengfuliangjx@sina.cn>
+---
+ .../compiler-rt/lib/builtins/aarch64/lse.S | 17 +++++++++++++++++
+ 1 file changed, 17 insertions(+)
+
+diff --git a/src/llvm-project/compiler-rt/lib/builtins/aarch64/lse.S b/src/llvm-project/compiler-rt/lib/builtins/aarch64/lse.S
+index 1fe18f4..31577a4 100644
+--- a/src/llvm-project/compiler-rt/lib/builtins/aarch64/lse.S
++++ b/src/llvm-project/compiler-rt/lib/builtins/aarch64/lse.S
+@@ -129,6 +129,7 @@ HIDDEN(___aarch64_have_lse_atomics)
+ #define tmp1 17
+ #define tmp2 15
+
++#ifndef HARDCODED_NO_LSE
+ // Macro for branch to label if no LSE available
+ .macro JUMP_IF_NOT_LSE label
+ #if !defined(__APPLE__)
+@@ -140,11 +141,15 @@ HIDDEN(___aarch64_have_lse_atomics)
+ #endif
+ cbz w(tmp0), \label
+ .endm
++#endif // HARDCODED_NO_LSE
+
+ #ifdef L_cas
+ DEFINE_COMPILERRT_OUTLINE_FUNCTION_UNMANGLED(NAME(cas))
++#ifndef HARDCODED_NO_LSE
+ JUMP_IF_NOT_LSE 8f
++#endif // HARDCODED_NO_LSE
+ #if SIZE < 16
++#ifndef HARDCODED_NO_LSE
+ #ifdef HAS_ASM_LSE
+ #define CAS GLUE4(cas, A, L, S) s(0), s(1), [x2]
+ #else
+@@ -153,6 +158,8 @@ DEFINE_COMPILERRT_OUTLINE_FUNCTION_UNMANGLED(NAME(cas))
+ CAS // s(0), s(1), [x2]
+ ret
+ 8:
++#endif // HARDCODED_NO_LSE
++ mov s(tmp0), s(0)
+ UXT s(tmp0), s(0)
+ 0:
+ LDXR s(0), [x2]
+@@ -171,6 +178,7 @@ DEFINE_COMPILERRT_OUTLINE_FUNCTION_UNMANGLED(NAME(cas))
+ #define LDXP GLUE3(ld, A, xp)
+ #endif
+ #define STXP GLUE3(st, L, xp)
++#ifndef HARDCODED_NO_LSE
+ #ifdef HAS_ASM_LSE
+ #define CASP GLUE3(casp, A, L) x0, x1, x2, x3, [x4]
+ #else
+@@ -180,6 +188,7 @@ DEFINE_COMPILERRT_OUTLINE_FUNCTION_UNMANGLED(NAME(cas))
+ CASP // x0, x1, x2, x3, [x4]
+ ret
+ 8:
++#endif // HARDCODED_NO_LSE
+ mov x(tmp0), x0
+ mov x(tmp1), x1
+ 0:
+@@ -197,16 +206,20 @@ END_COMPILERRT_OUTLINE_FUNCTION(NAME(cas))
+ #endif // L_cas
+
+ #ifdef L_swp
++#ifndef HARDCODED_NO_LSE
+ #ifdef HAS_ASM_LSE
+ #define SWP GLUE4(swp, A, L, S) s(0), s(0), [x1]
+ #else
+ #define SWP .inst 0x38208020 + B + N
+ #endif
++#endif // HARDCODED_NO_LSE
+ DEFINE_COMPILERRT_OUTLINE_FUNCTION_UNMANGLED(NAME(swp))
++#ifndef HARDCODED_NO_LSE
+ JUMP_IF_NOT_LSE 8f
+ SWP // s(0), s(0), [x1]
+ ret
+ 8:
++#endif // HARDCODED_NO_LSE
+ mov s(tmp0), s(0)
+ 0:
+ LDXR s(0), [x1]
+@@ -240,17 +253,21 @@ END_COMPILERRT_OUTLINE_FUNCTION(NAME(swp))
+ #error
+ #endif
+
++#ifndef HARDCODED_NO_LSE
+ #ifdef HAS_ASM_LSE
+ #define LDOP GLUE4(LDNM, A, L, S) s(0), s(0), [x1]
+ #else
+ #define LDOP .inst 0x38200020 + OPN + B + N
+ #endif
++#endif // HARDCODED_NO_LSE
+
+ DEFINE_COMPILERRT_OUTLINE_FUNCTION_UNMANGLED(NAME(LDNM))
++#ifndef HARDCODED_NO_LSE
+ JUMP_IF_NOT_LSE 8f
+ LDOP // s(0), s(0), [x1]
+ ret
+ 8:
++#endif // HARDCODED_NO_LSE
+ mov s(tmp0), s(0)
+ 0:
+ LDXR s(0), [x1]
+--
+2.51.0.windows.1
+
diff --git a/0001-fix-build-error-for-loongarch64.patch b/0001-fix-build-error-for-loongarch64.patch
new file mode 100644
index 0000000..4acb4e8
--- /dev/null
+++ b/0001-fix-build-error-for-loongarch64.patch
@@ -0,0 +1,11 @@
+--- a/vendor/compiler_builtins-0.1.123/configure.rs
++++ b/vendor/compiler_builtins-0.1.123/configure.rs
+@@ -72,6 +72,8 @@ pub fn configure_f16_f128(target: &Target) {
+ "sparc" | "sparcv9" => (true, false),
+ // `f16` miscompiles <https://github.com/llvm/llvm-project/issues/96438>
+ "wasm32" | "wasm64" => (false, true),
++ "loongarch64" => (false, true),
++ "riscv64" | "riscv64gc" => (false, true),
+ // Most everything else works as of LLVM 19
+ _ => (true, true),
+ };
diff --git a/cargo_vendor.attr b/cargo_vendor.attr
deleted file mode 100644
index be2d48f..0000000
--- a/cargo_vendor.attr
+++ /dev/null
@@ -1,2 +0,0 @@
-%__cargo_vendor_path ^%{_defaultlicensedir}(/[^/]+)+/cargo-vendor.txt$
-%__cargo_vendor_provides %{_rpmconfigdir}/cargo_vendor.prov
diff --git a/cargo_vendor.prov b/cargo_vendor.prov
deleted file mode 100644
index 6efca18..0000000
--- a/cargo_vendor.prov
+++ /dev/null
@@ -1,127 +0,0 @@
-#! /usr/bin/python3 -s
-# Stripped down replacement for cargo2rpm parse-vendor-manifest
-
-import re
-import subprocess
-import sys
-from typing import Optional
-
-
-VERSION_REGEX = re.compile(
- r"""
- ^
- (?P<major>0|[1-9]\d*)
- \.(?P<minor>0|[1-9]\d*)
- \.(?P<patch>0|[1-9]\d*)
- (?:-(?P<pre>(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?
- (?:\+(?P<build>[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$
- """,
- re.VERBOSE,
-)
-
-
-class Version:
- """
- Version that adheres to the "semantic versioning" format.
- """
-
- def __init__(self, major: int, minor: int, patch: int, pre: Optional[str] = None, build: Optional[str] = None):
- self.major: int = major
- self.minor: int = minor
- self.patch: int = patch
- self.pre: Optional[str] = pre
- self.build: Optional[str] = build
-
- @staticmethod
- def parse(version: str) -> "Version":
- """
- Parses a version string and return a `Version` object.
- Raises a `ValueError` if the string does not match the expected format.
- """
-
- match = VERSION_REGEX.match(version)
- if not match:
- raise ValueError(f"Invalid version: {version!r}")
-
- matches = match.groupdict()
-
- major_str = matches["major"]
- minor_str = matches["minor"]
- patch_str = matches["patch"]
- pre = matches["pre"]
- build = matches["build"]
-
- major = int(major_str)
- minor = int(minor_str)
- patch = int(patch_str)
-
- return Version(major, minor, patch, pre, build)
-
- def to_rpm(self) -> str:
- """
- Formats the `Version` object as an equivalent RPM version string.
- Characters that are invalid in RPM versions are replaced ("-" -> "_")
-
- Build metadata (the optional `Version.build` attribute) is dropped, so
- the conversion is not lossless for versions where this attribute is not
- `None`. However, build metadata is not intended to be part of the
- version (and is not even considered when doing version comparison), so
- dropping it when converting to the RPM version format is correct.
- """
-
- s = f"{self.major}.{self.minor}.{self.patch}"
- if self.pre:
- s += f"~{self.pre.replace('-', '_')}"
- return s
-
-
-def break_the_build(error: str):
- """
- This function writes a string that is an invalid RPM dependency specifier,
- which causes dependency generators to fail and break the build. The
- additional error message is printed to stderr.
- """
-
- print("*** FATAL ERROR ***")
- print(error, file=sys.stderr)
-
-
-def get_cargo_vendor_txt_paths_from_stdin() -> set[str]: # pragma nocover
- """
- Read lines from standard input and filter out lines that look like paths
- to `cargo-vendor.txt` files. This is how RPM generators pass lists of files.
- """
-
- lines = {line.rstrip("\n") for line in sys.stdin.readlines()}
- return {line for line in lines if line.endswith("/cargo-vendor.txt")}
-
-
-def action_parse_vendor_manifest():
- paths = get_cargo_vendor_txt_paths_from_stdin()
-
- for path in paths:
- with open(path) as file:
- manifest = file.read()
-
- for line in manifest.strip().splitlines():
- crate, version = line.split(" v")
- print(f"bundled(crate({crate})) = {Version.parse(version).to_rpm()}")
-
-
-def main():
- try:
- action_parse_vendor_manifest()
- exit(0)
-
- # print an error message that is not a valid RPM dependency
- # to cause the generator to break the build
- except (IOError, ValueError) as exc:
- break_the_build(str(exc))
- exit(1)
-
- break_the_build("Uncaught exception: This should not happen, please report a bug.")
- exit(1)
-
-
-if __name__ == "__main__":
- main()
diff --git a/rust-1.82.0-aarch64-unknown-linux-gnu.tar.xz b/rust-1.82.0-aarch64-unknown-linux-gnu.tar.xz
new file mode 100644
index 0000000..5e0f13e
--- /dev/null
+++ b/rust-1.82.0-aarch64-unknown-linux-gnu.tar.xz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:99acf175be33bd96ac82d644125d0e2acc6962d61ee64851edc7d8ba3bd23ca4
+size 236675048
diff --git a/rust-1.82.0-loongarch64-unknown-linux-gnu.tar.xz b/rust-1.82.0-loongarch64-unknown-linux-gnu.tar.xz
new file mode 100644
index 0000000..5cc89de
--- /dev/null
+++ b/rust-1.82.0-loongarch64-unknown-linux-gnu.tar.xz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:60508db0879fcb4b1ff0d254bce6352a929857bcebdd6a0ddd8b32d92672684f
+size 214922428
diff --git a/rust-1.82.0-riscv64gc-unknown-linux-gnu.tar.xz b/rust-1.82.0-riscv64gc-unknown-linux-gnu.tar.xz
new file mode 100644
index 0000000..3c3cd4f
--- /dev/null
+++ b/rust-1.82.0-riscv64gc-unknown-linux-gnu.tar.xz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:532190c3cdbdee9249bcde648b1c61b092bdd8885266ba9edd6df6824a454958
+size 217304308
diff --git a/rust-1.82.0-x86_64-unknown-linux-gnu.tar.xz b/rust-1.82.0-x86_64-unknown-linux-gnu.tar.xz
new file mode 100644
index 0000000..e92b3a3
--- /dev/null
+++ b/rust-1.82.0-x86_64-unknown-linux-gnu.tar.xz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8a6bf24ca1fee2bd861590431c7954674191a0c0dfa0af4169731bc1459cf58a
+size 178075016
diff --git a/rust-1.92.0-aarch64-unknown-linux-gnu.tar.xz b/rust-1.92.0-aarch64-unknown-linux-gnu.tar.xz
deleted file mode 100644
index c11d548..0000000
--- a/rust-1.92.0-aarch64-unknown-linux-gnu.tar.xz
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:3e383f8b4fca710d0600d0c1de97b78281672be2cda6575ecbe1c183a12e3822
-size 169667388
diff --git a/rust-1.92.0-loongarch64-unknown-linux-gnu.tar.xz b/rust-1.92.0-loongarch64-unknown-linux-gnu.tar.xz
deleted file mode 100644
index 026445b..0000000
--- a/rust-1.92.0-loongarch64-unknown-linux-gnu.tar.xz
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:bd7d8d94709e5a6320f655cf469fd5ecd0b596e29247cd4f46ce0fbef2a21072
-size 260244032
diff --git a/rust-1.92.0-riscv64gc-unknown-linux-gnu.tar.xz b/rust-1.92.0-riscv64gc-unknown-linux-gnu.tar.xz
deleted file mode 100644
index 23ac4af..0000000
--- a/rust-1.92.0-riscv64gc-unknown-linux-gnu.tar.xz
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:5492105083990bc0fd91008b1dc66b748b9687bbaf16719b5b37b1f09bf59458
-size 248195844
diff --git a/rust-1.92.0-x86_64-unknown-linux-gnu.tar.xz b/rust-1.92.0-x86_64-unknown-linux-gnu.tar.xz
deleted file mode 100644
index e448e86..0000000
--- a/rust-1.92.0-x86_64-unknown-linux-gnu.tar.xz
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:d2ccef59dd9f7439f2c694948069f789a044dc1addcc0803613232af8f88ee0c
-size 192171372
diff --git a/rust.spec b/rust.spec
index d73c5d0..77e5a9e 100644
--- a/rust.spec
+++ b/rust.spec
@@ -1,11 +1,10 @@
-%define _lto_cflags %{nil}
-%global bootstrap_rust 1.92.0
-%global bootstrap_cargo 1.92.0
-%global bootstrap_channel 1.92.0
-%global bootstrap_date 2025-12-12
+%global bootstrap_rust 1.82.0
+%global bootstrap_cargo 1.82.0
+%global bootstrap_channel 1.82.0
+%global bootstrap_date 2024-10-17
%global bootstrap_arches x86_64 aarch64 riscv64 loongarch64
%bcond_with llvm_static
-%ifarch x86_64 aarch64 riscv64
+%ifarch x86_64 aarch64 riscv64 loongarch64
%bcond_with bundled_llvm
%else
%bcond_without bundled_llvm
@@ -25,8 +24,8 @@
%endif
Name: rust
-Version: 1.92.0
-Release: 1
+Version: 1.82.0
+Release: 16
Summary: The Rust Programming Language
License: Apache-2.0 OR MIT
URL: https://www.rust-lang.org
@@ -37,16 +36,18 @@ Source2: https://static.rust-lang.org/rust-key.gpg.ascii
Source3: cargo-config
Source4: cargo-config.sh
Source5: cargo-config.csh
-# Simple rpm macros for rust-toolset
-Source102: cargo_vendor.attr
-Source103: cargo_vendor.prov
-Patch0000: rustc-1.90.0-disable-libssh2.patch
+Patch0000: rustc-1.82.0-disable-libssh2.patch
# By default, rust tries to use "rust-lld" as a linker for some targets.
Patch0001: 0001-Use-lld-provided-by-system.patch
# Set a substitute-path in rust-gdb for standard library sources.
Patch0002: rustc-1.70.0-rust-gdb-substitute-path.patch
Patch0003: 0001-add-support-for-ppc64le.patch
+# https://github.com/rust-lang/rust/pull/130034 (from 1.83)
+Patch0004: 0001-Fix-enabling-wasm-component-ld-to-match-other-tools.patch
+Patch0005: 0001-fix-build-error-for-loongarch64.patch
+Patch0006: 0001-add-support-for-sw64.patch
+Patch0007: 0001-compiler-rt-Support-HARDCODE_NO_LSE-to-disable-lse-a.patch
%{lua: function rust_triple(arch)
local abi = "gnu"
@@ -116,28 +117,27 @@ BuildRequires: pkgconfig(openssl) pkgconfig(zlib) pkgconfig(libssh2) >= 1.
%global python python3
BuildRequires: %{python}
%if %with bundled_llvm
-BuildRequires: cmake3 >= 3.20.3
-Provides: bundled(llvm) = 20.1.8
+BuildRequires: cmake3 >= 3.13.4
+Provides: bundled(llvm) = 19.1.1
%else
-BuildRequires: cmake >= 3.5.1
+BuildRequires: cmake >= 2.8.11
%if %defined llvm
%global llvm_root %{_libdir}/%{llvm}
%else
+# default llvm is decent enough on riscv64
%ifarch x86_64 aarch64 riscv64 loongarch64
-%global llvm_toolset llvm-toolset-20
-%global llvm %{llvm_toolset}-llvm
-%global llvm_root /opt/%{_vendor}/%{llvm_toolset}/root%{_prefix}
-%global clang_maj_ver %(echo "%{llvm_toolset}" | cut -d '-' -f3)
+%global llvm llvm-toolset-18-llvm
+%global llvm_root /opt/%{_vendor}/llvm-toolset-18/root%{_prefix}
+%global clang_maj_ver 18
%else
%global llvm llvm
%global llvm_root %{_prefix}
%global clang_maj_ver 17
%endif
%endif
-# Minimum external LLVM for rust 1.92
-# https://github.com/rust-lang/rust/pull/139275
-BuildRequires: %{llvm} >= 20.0.0
-BuildRequires: %{llvm}-devel >= 20.0.0
+# Minimum external LLVM for rust 1.82
+BuildRequires: %{llvm} >= 17.0.0
+BuildRequires: %{llvm}-devel >= 17.0.0
%if %with llvm_static
BuildRequires: %{llvm}-static libffi-devel
%endif
@@ -145,8 +145,8 @@ BuildRequires: %{llvm}-static libffi-devel
BuildRequires: procps-ng
BuildRequires: ninja-build
%ifarch x86_64 aarch64 riscv64 loongarch64
-BuildRequires: %{llvm_toolset}-compiler-rt
-BuildRequires: %{llvm_toolset}-clang
+BuildRequires: llvm-toolset-18-compiler-rt
+BuildRequires: llvm-toolset-18-clang
%else
BuildRequires: compiler-rt
BuildRequires: clang
@@ -211,13 +211,12 @@ programs.
%package -n cargo
Summary: Rust's package manager and build tool
%if %with bundled_libgit2
-Provides: bundled(libgit2) = 1.9.1
+Provides: bundled(libgit2) = 1.1.0
%endif
BuildRequires: git
-Requires: %{name} = %{version}-%{release}
+Requires: rust
Obsoletes: cargo-vendor <= 0.1.23
Provides: cargo-vendor = %{version}-%{release}
-Conflicts: cargo-rpm-macros < 1:23
%description -n cargo
Cargo is a tool that allows Rust projects to declare their various dependencies
and ensure that you'll always get a repeatable build.
@@ -294,6 +293,10 @@ sed -i.try-python -e '/^try python3 /i try "%{python}" "$@"' ./configure
%patch -P 0001 -p1
%patch -P 0002 -p1
%patch -P 0003 -p1
+%patch -P 0004 -p1
+%patch -P 0005 -p1
+%patch -P 0006 -p1
+%patch -P 0007 -p1
rm -rf vendor/curl-sys*/curl/
rm -rf vendor/jemalloc-sys/jemalloc/
rm -rf vendor/libffi-sys*/libffi/
@@ -382,7 +385,7 @@ test -r "%{profiler}"
--disable-rpath \
%{enable_debuginfo} \
--enable-extended \
- --tools=cargo,clippy,rust-analyzer,rustdoc,rustfmt,src \
+ --tools=cargo,clippy,rust-analyzer,rustfmt,src \
--enable-vendor \
--enable-verbose-tests \
%{?codegen_units_std} \
@@ -438,10 +441,6 @@ install -m 0644 -D -p %{SOURCE3} %{buildroot}%{_sysconfdir}/skel/.cargo/config.t
install -m 0644 -D -p %{SOURCE4} %{buildroot}%{_sysconfdir}/profile.d/cargo-config.sh
install -m 0644 -D -p %{SOURCE5} %{buildroot}%{_sysconfdir}/profile.d/cargo-config.csh
-# This allows users to build packages using Rust Toolset.
-%{__install} -D -m 644 %{S:102} %{buildroot}%{_fileattrsdir}/cargo_vendor.attr
-%{__install} -D -m 755 %{S:103} %{buildroot}%{_rpmconfigdir}/cargo_vendor.prov
-
%if %without lldb
rm -f %{buildroot}%{_bindir}/rust-lldb
rm -f %{buildroot}%{rustlibdir}/etc/lldb_*
@@ -464,9 +463,6 @@ export %{rust_env}
%files
%license COPYRIGHT LICENSE-APACHE LICENSE-MIT
%license %{_pkgdocdir}/html/*.txt
-%license %{_pkgdocdir}/COPYRIGHT.html
-%license %{_pkgdocdir}/licenses/
-%exclude %{_sysconfdir}/target-spec-json-schema.json
%doc README.md
%{_bindir}/rustc
%{_bindir}/rustdoc
@@ -482,12 +478,10 @@ export %{rust_env}
%endif
%files std-static
-%license %{_pkgdocdir}/COPYRIGHT-library.html
%dir %{rustlibdir}
%dir %{rustlibdir}/%{rust_triple}
%dir %{rustlibdir}/%{rust_triple}/lib
%{rustlibdir}/%{rust_triple}/lib/*.rlib
-%{rustlibdir}/%{rust_triple}/bin/rust-objcopy
%if %{with musl_target}
%dir %{rustlibdir}/%{rust_musl_triple}
%dir %{rustlibdir}/%{rust_musl_triple}/lib
@@ -523,8 +517,6 @@ export %{rust_env}
%{_datadir}/zsh/site-functions/_cargo
%dir %{_datadir}/cargo
%dir %{_datadir}/cargo/registry
-%{_fileattrsdir}/cargo_vendor.attr
-%{_rpmconfigdir}/cargo_vendor.prov
%files -n rustfmt
%{_bindir}/rustfmt
@@ -559,75 +551,49 @@ export %{rust_env}
%{_mandir}/man1/cargo*.1*
%changelog
-* Fri Dec 12 2025 Funda Wang <fundawang@yeah.net> - 1.92.0-1
-- update to 1.92.0
-
-* Tue Nov 11 2025 Funda Wang <fundawang@yeah.net> - 1.91.1-1
-- update to 1.91.1
-
-* Tue Nov 04 2025 wangkai <13474090681@163.com> - 1.91.0-2
+* Tue Nov 04 2025 wangkai <13474090681@163.com> - 1.82.0-16
- Fix syntax error for rust
-* Fri Oct 31 2025 Funda Wang <fundawang@yeah.net> - 1.91.0-1
-- update to 1.91.0
-
-* Thu Oct 23 2025 Funda Wang <fundawang@yeah.net> - 1.90.0-2
-- add conflicts on older version of cargo-rpm-macros
-
-* Thu Sep 25 2025 jchzhou <zhoujiacheng@iscas.ac.cn> - 1.90.0-1
-- Update to 1.90.0
-
-* Wed Sep 24 2025 wangkai <13474090681@163.com> - 1.89.0-2
+* Wed Sep 24 2025 wangkai <13474090681@163.com> - 1.82.0-15
- Remove rls command
- Cleanup spec
-* Sun Aug 10 2025 Funda Wang <fundawang@yeah.net> - 1.89.0-1
-- update to 1.89.0
-
-* Wed Jul 09 2025 wangkai <13474090681@163.com> - 1.88.0-1
-- Update to 1.88.0
-
-* Wed Jun 11 2025 Peng Haitao <htpengc@isoftstone.com> - 1.87.0-2
-- Modify openEuler to %{vendor}
+* Tue Sep 23 2025 eshiner <zengfuliangjx@sina.cn> - 1.82.0-14
+- Support HARDCODE_NO to disable lse atomic
-* Fri May 16 2025 jchzhou <zhoujiacheng@iscas.ac.cn> - 1.87.0-1
-- Update to 1.87.0
-
-* Mon Apr 07 2025 wangkai <13474090681@163.com> - 1.86.0-1
-- Update to 1.86.0
+* Tue Aug 19 2025 xiaochn <xiaochuannan@inspur.com> - 1.82.0-13
+- Modify openEuler to vendor
-* Tue Apr 01 2025 wangkai <13474090681@163.com> - 1.85.1-1
-- Update to 1.85.1
+* Fri May 23 2025 swcompiler <lc@wxiat.com> - 1.82.0-12
+- Add support for Sw64
-* Fri Mar 07 2025 jchzhou <zhoujiacheng@iscas.ac.cn> - 1.85.0-1
-- Update to 1.85.0
+* Wed May 07 2025 wangkai <13474090681@163.com> - 1.82.0-11
+- Include all sources in the source package
-* Fri Feb 21 2025 laokz <zhangkai@iscas.ac.cn> - 1.84.0-3
+* Wed Feb 26 2025 laokz <zhangkai@iscas.ac.cn> - 1.82.0-10
- Switch to unbundled llvm for riscv64 building
-* Mon Feb 17 2025 wangkai <13474090681@163.com> - 1.84.0-2
+* Wed Jan 15 2025 wangkai <13474090681@163.com> - 1.82.0-9
- Switch to unbundled llvm for x86_64 aarch64 building
-* Wed Jan 15 2025 wangkai <13474090681@163.com> - 1.84.0-1
-- Update to 1.84.0
+* Fri Jan 03 2025 laokz <zhangkai@iscas.ac.cn> - 1.82.0-8
+- fix the error out of memory for riscv64
-* Mon Dec 09 2024 wangkai <13474090681@163.com> - 1.83.0-1
-- Update to 1.83.0
-- Switch loongarch64 arch to bootstrap
-
-* Fri Dec 06 2024 jchzhou <zhoujiacheng@iscas.ac.cn> - 1.82.0-6
-- Co-authored-by: misaka00251 <liuxin@iscas.ac.cn>
-- Add a switch for the musl target & disable it for loongarch64 & riscv64
+* Fri Dec 20 2024 Wenlong Zhang <zhangwenlong@loongson.cn> - 1.82.0-7
+- fix the error out of memory for loongarch64
-* Fri Nov 29 2024 Wenlong Zhang <zhangwenlong@loongson.cn> - 1.82.0-5
-- fix build error for loongarch64
+* Sun Dec 08 2024 misaka00251 <liuxin@iscas.ac.cn> - 1.82.0-6
+- Fix rpm macros
-* Fri Nov 29 2024 jchzhou <zhoujiacheng@iscas.ac.cn> - 1.82.0-4
-- Fix a minor unpackaged file issue
+* Fri Dec 06 2024 jchzhou <zhoujiacheng@iscas.ac.cn> - 1.82.0-5
+- Add a switch for the musl target & disable it for loongarch64 & riscv64
-* Wed Nov 20 2024 Wenl4ng <wenlang1@h-partners.com> - 1.82.0-3
+* Fri Nov 22 2024 Wenl4ng <wenlang1@h-partners.com> - 1.82.0-4
- use lfs-server
+* Fri Nov 22 2024 Wenlong Zhang<zhangwenlong@loongson.cn> - 1.82.0-3
+- fix build error for loongarch64
+
* Wed Nov 13 2024 jchzhou <zhoujiacheng@iscas.ac.cn> - 1.82.0-2
- Switch to bundled llvm for building, halve the 'max_cpus' in this case
diff --git a/rustc-1.82.0-disable-libssh2.patch b/rustc-1.82.0-disable-libssh2.patch
new file mode 100644
index 0000000..69f5704
--- /dev/null
+++ b/rustc-1.82.0-disable-libssh2.patch
@@ -0,0 +1,44 @@
+diff -up rustc-beta-src/src/tools/cargo/Cargo.lock.orig rustc-beta-src/src/tools/cargo/Cargo.lock
+--- rustc-beta-src/src/tools/cargo/Cargo.lock.orig 2024-09-06 10:36:55.743405666 -0700
++++ rustc-beta-src/src/tools/cargo/Cargo.lock 2024-09-06 10:36:55.745405652 -0700
+@@ -2156,7 +2156,6 @@ checksum = "10472326a8a6477c3c20a64547b0
+ dependencies = [
+ "cc",
+ "libc",
+- "libssh2-sys",
+ "libz-sys",
+ "openssl-sys",
+ "pkg-config",
+@@ -2197,20 +2196,6 @@ dependencies = [
+ "pkg-config",
+ "vcpkg",
+ ]
+-
+-[[package]]
+-name = "libssh2-sys"
+-version = "0.3.0"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "2dc8a030b787e2119a731f1951d6a773e2280c660f8ec4b0f5e1505a386e71ee"
+-dependencies = [
+- "cc",
+- "libc",
+- "libz-sys",
+- "openssl-sys",
+- "pkg-config",
+- "vcpkg",
+-]
+
+ [[package]]
+ name = "libz-sys"
+diff -up rustc-beta-src/src/tools/cargo/Cargo.toml.orig rustc-beta-src/src/tools/cargo/Cargo.toml
+--- rustc-beta-src/src/tools/cargo/Cargo.toml.orig 2024-09-06 10:36:55.746405645 -0700
++++ rustc-beta-src/src/tools/cargo/Cargo.toml 2024-09-06 10:37:13.849280464 -0700
+@@ -44,7 +44,7 @@ curl = "0.4.46"
+ curl-sys = "0.4.73"
+ filetime = "0.2.23"
+ flate2 = { version = "1.0.30", default-features = false, features = ["zlib"] }
+-git2 = "0.19.0"
++git2 = { version = "0.19.0", default-features = false, features = ["https"] }
+ git2-curl = "0.20.0"
+ gix = { version = "0.64.0", default-features = false, features = ["blocking-http-transport-curl", "progress-tree", "parallel", "dirwalk"] }
+ glob = "0.3.1"
diff --git a/rustc-1.82.0-src.tar.xz b/rustc-1.82.0-src.tar.xz
new file mode 100644
index 0000000..c83dcc0
--- /dev/null
+++ b/rustc-1.82.0-src.tar.xz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1276a0bb8fa12288ba6fa96597d28b40e74c44257c051d3bc02c2b049bb38210
+size 219769328
diff --git a/rustc-1.82.0-src.tar.xz.asc b/rustc-1.82.0-src.tar.xz.asc
new file mode 100644
index 0000000..3c1b012
--- /dev/null
+++ b/rustc-1.82.0-src.tar.xz.asc
@@ -0,0 +1,16 @@
+-----BEGIN PGP SIGNATURE-----
+
+wsFcBAABCgAQBQJnETfJCRCFq5bm+hvl/gAASrIP/R3fPIF8QTLm3MxtYYYESIUz
+BbTUeC3NCuasXFLY7lPPazlgMTvtuRxn4qpTliwtGKtCDWtr1LdzwzFCw2zrW72g
+wA/HHvpq16z3Qkk6kjW27c+QQVatAmBtpydehHo3V4QeMs1piMEbGT7cnyN/cW+u
+o4YoBdfRMDKV13n516QhBDI7+LzF/Tz1P7RYYnXhSFQ4DwZZBdZni5udaELI8I2R
+bhFwe0AC/msClq+Wo5u8I5qfmzUf4hj+zVCUeWt8srk434DkgEX+5lz4jkQH1WLv
+HMZXyfx0xwynOe00teZKy6X8lD9KgF0EgbKEjntPbXlGiLWSRpFFvkPpz6DNQ0Hy
+QiVqebi7skwO+SK/Go45SAnIH4y/nlMMx0RAtivDtk53VNU68wju5dXJ5KiWCWyc
+vWZROmT5SdYFtaEGtiQyS4vhXKZ0mbTDX0LjxogLf+eW4wyRk91zzUxkpZ69SuSG
+cR6AblMjvcjCfwgbSNkA4zg5V3OKs4WmuEyeO4Q/EMCO6+USjzwjqOB5L1NSFUkL
+8z0qC70x68PR7d7mXgnqui4zISrYeXYe9nVRkwNwNFWFWBNUtW/LUGD/v6ee9CWD
+0cYmInsUFM8DxtqJH0rsfd78qjrQwEtoReTrwO1fs9E5L3kCqZm5tNxp6A2vgCr/
+PIc5UHGVeUxQWc1bYNha
+=IXFx
+-----END PGP SIGNATURE-----
diff --git a/rustc-1.90.0-disable-libssh2.patch b/rustc-1.90.0-disable-libssh2.patch
deleted file mode 100644
index 23dc6d8..0000000
--- a/rustc-1.90.0-disable-libssh2.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-diff -up rustc-beta-src/src/tools/cargo/Cargo.lock.orig rustc-beta-src/src/tools/cargo/Cargo.lock
---- rustc-beta-src/src/tools/cargo/Cargo.lock.orig 2025-08-16 15:47:14.000000000 -0700
-+++ rustc-beta-src/src/tools/cargo/Cargo.lock 2025-08-18 17:31:39.554771554 -0700
-@@ -2800,7 +2800,6 @@ checksum = "1c42fe03df2bd3c53a3a9c7317ad
- dependencies = [
- "cc",
- "libc",
-- "libssh2-sys",
- "libz-sys",
- "openssl-sys",
- "pkg-config",
-@@ -2847,20 +2846,6 @@ dependencies = [
- "pkg-config",
- "vcpkg",
- ]
--
--[[package]]
--name = "libssh2-sys"
--version = "0.3.1"
--source = "registry+https://github.com/rust-lang/crates.io-index"
--checksum = "220e4f05ad4a218192533b300327f5150e809b54c4ec83b5a1d91833601811b9"
--dependencies = [
-- "cc",
-- "libc",
-- "libz-sys",
-- "openssl-sys",
-- "pkg-config",
-- "vcpkg",
--]
-
- [[package]]
- name = "libz-rs-sys"
-diff -up rustc-beta-src/src/tools/cargo/Cargo.toml.orig rustc-beta-src/src/tools/cargo/Cargo.toml
---- rustc-beta-src/src/tools/cargo/Cargo.toml.orig 2025-08-16 15:47:14.000000000 -0700
-+++ rustc-beta-src/src/tools/cargo/Cargo.toml 2025-08-18 17:33:02.401743230 -0700
-@@ -46,7 +46,7 @@ curl = "0.4.48"
- curl-sys = "0.4.82"
- filetime = "0.2.25"
- flate2 = { version = "1.1.2", default-features = false, features = ["zlib-rs"] }
--git2 = "0.20.2"
-+git2 = { version = "0.20.2", default-features = false, features = ["https"] }
- git2-curl = "0.21.0"
- # When updating this, also see if `gix-transport` further down needs updating or some auth-related tests will fail.
- gix = { version = "0.73.0", default-features = false, features = ["progress-tree", "parallel", "dirwalk", "status"] }
diff --git a/rustc-1.92.0-src.tar.xz b/rustc-1.92.0-src.tar.xz
deleted file mode 100644
index b83b596..0000000
--- a/rustc-1.92.0-src.tar.xz
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:ebee170bfe4c4dfc59521a101de651e5534f4dae889756a5c97ca9ea40d0c307
-size 271887480
diff --git a/rustc-1.92.0-src.tar.xz.asc b/rustc-1.92.0-src.tar.xz.asc
deleted file mode 100644
index f54f9d9..0000000
--- a/rustc-1.92.0-src.tar.xz.asc
+++ /dev/null
@@ -1,16 +0,0 @@
------BEGIN PGP SIGNATURE-----
-
-wsFcBAABCgAQBQJpOtg7CRCFq5bm+hvl/gAA4pYP/3GCAzLuuLFic+mRciE3LtF4
-9NsYFYsMCFD6Guv/wNzw1MbpJkhTrc3/cG5SV9N16xgbgtTh4v2HgmkEYrNbFrxy
-OjaWFXjlJfbeTmhzPMV74yzWsP/RCNklDrJhj/RJDwr8OXgnratX95oVnmSFHcU1
-0e/EqjuL5BmAXjeLvgR9AnfFIrOp3GwF3SdOtHW68HpilbyHx1/mcZWyf8cftybE
-2OM0UqVmeDeH+WV7bHrsqVLpOWEAFALCnQRvT8yIzk2cjqwtGIjZEKmMUJ9INsbs
-TXBDIMH4lZQSOJQ5+0cKks7tPEx6a1n6JHx+D7L3l4EjnDdLpmLavyDpwO3hZFqX
-VtdFGBe2b8G4ENHUv9TwHo2w0zRFl9zKAuuVDFcXn21kJ2tRbumM3mrob/e26qKn
-C7ksrzYfxptKHb89WNle5G3LrSN+7uTbz+BymBSbxRrabZ+jrKNVh/UUzQnvwBGi
-GQvjEi3dOX6KGKP8/0WkeQDx+R8Vc0I2CZAxsKw6Na/i0giBffCcs6RY7fLRTvwO
-Ty+J+ZMl9xRgIqhJ+EfsyNWgFacJmqS5cANIWjluyYQhNAmZ9Li3YoFGbROtR2r8
-L1Fluy9PQ00JUiH9gIZud/Sgjy6rWnrx/1DDXC5sZ5cfRFjXEMs8Ur+HZ14ftV1e
-1M9qv04o0o0iSJDgdF+n
-=8XTv
------END PGP SIGNATURE-----