diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000000000000000000000000000000000000..d87f5613ec4234f82f8eaeebc563711f587fdf88 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +*.xz filter=lfs diff=lfs merge=lfs -text diff --git a/.lfsconfig b/.lfsconfig new file mode 100644 index 0000000000000000000000000000000000000000..a8a12cdf73a824f5e555931ea5e8a134c3bd3968 --- /dev/null +++ b/.lfsconfig @@ -0,0 +1,2 @@ +[lfs] + url = https://artlfs.openeuler.openatom.cn/src-openEuler/rust \ No newline at end of file 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 0000000000000000000000000000000000000000..5364012fc7dccf2679e5395a5373a925a95faca2 --- /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 +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 { + 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 bee8e16d3f9007c027f246b2cee659becd5d3240..063d66a01f94c5b67d3e0c3bcea1ca86122b7889 100644 --- a/0001-Use-lld-provided-by-system.patch +++ b/0001-Use-lld-provided-by-system.patch @@ -1,19 +1,21 @@ -From 61b5cc96337da2121221dd1bcdb63fd36551d065 Mon Sep 17 00:00:00 2001 +From 3d8c6d095581e8d7585f3772cfd16f6367f3c008 Mon Sep 17 00:00:00 2001 From: Josh Stone -Date: Wed, 1 Nov 2023 15:21:15 -0700 +Date: Fri, 16 Aug 2024 10:12:58 -0700 Subject: [PATCH] Use lld provided by system --- - compiler/rustc_target/src/spec/base/wasm.rs | 3 +-- - compiler/rustc_target/src/spec/targets/x86_64_unknown_none.rs | 2 +- - compiler/rustc_target/src/spec/targets/x86_64_unknown_uefi.rs | 1 + - 3 files changed, 3 insertions(+), 3 deletions(-) + compiler/rustc_target/src/spec/base/wasm.rs | 3 +-- + .../src/spec/targets/aarch64_unknown_none_softfloat.rs | 2 +- + compiler/rustc_target/src/spec/targets/aarch64_unknown_uefi.rs | 1 + + compiler/rustc_target/src/spec/targets/x86_64_unknown_none.rs | 2 +- + compiler/rustc_target/src/spec/targets/x86_64_unknown_uefi.rs | 1 + + 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 87ade9e58cf4..2ddff95febab 100644 +index f237391016e7..08bcd9699b4a 100644 --- a/compiler/rustc_target/src/spec/base/wasm.rs +++ b/compiler/rustc_target/src/spec/base/wasm.rs -@@ -91,8 +91,7 @@ macro_rules! args { +@@ -85,8 +85,7 @@ macro_rules! args { // arguments just yet limit_rdylib_exports: false, @@ -23,8 +25,33 @@ index 87ade9e58cf4..2ddff95febab 100644 linker_flavor: LinkerFlavor::WasmLld(Cc::No), 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 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 +@@ -14,7 +14,7 @@ pub fn target() -> Target { + let opts = TargetOptions { + abi: "softfloat".into(), + linker_flavor: LinkerFlavor::Gnu(Cc::No, Lld::Yes), +- linker: Some("rust-lld".into()), ++ linker: Some("lld".into()), + features: "+v8a,+strict-align,-neon,-fp-armv8".into(), + 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 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 fn target() -> Target { + base.max_atomic_width = Some(128); + base.add_pre_link_args(LinkerFlavor::Msvc(Lld::No), &["/machine:arm64"]); + base.features = "+v8a".into(); ++ base.linker = Some("lld".into()); + + 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 9aa95a35f8e5..a9172f9441b7 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 @@ -17,7 +17,7 @@ pub fn target() -> Target { @@ -33,11 +60,11 @@ index 9aa95a35f8e5..a9172f9441b7 100644 linker_flavor: LinkerFlavor::Gnu(Cc::No, Lld::Yes), - linker: Some("rust-lld".into()), + linker: Some("lld".into()), - features: - "-mmx,-sse,-sse2,-sse3,-ssse3,-sse4.1,-sse4.2,-3dnow,-3dnowa,-avx,-avx2,+soft-float" - .into(), + 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 5abfb8162f70..13cb43bda1a4 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 @@ -16,6 +16,7 @@ pub fn target() -> Target { @@ -49,5 +76,5 @@ index 5abfb8162f70..13cb43bda1a4 100644 // 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.41.0 +2.46.0 diff --git a/0001-add-support-for-ppc64le.patch b/0001-add-support-for-ppc64le.patch index e22fbebfff408e7c94e1b4e6708da8739d91ee4a..dbd1e0e97ed8a9fe58a23c17b081013838bab71b 100644 --- a/0001-add-support-for-ppc64le.patch +++ b/0001-add-support-for-ppc64le.patch @@ -4,24 +4,23 @@ Date: Wed, 12 Jun 2024 09:14:32 +0000 Subject: [PATCH] add support for ppc64le --- - compiler/rustc_target/src/spec/mod.rs | 2 ++ - .../src/spec/targets/ppc64le_unknown_freebsd.rs | 17 +++++++++++++++++ - .../spec/targets/ppc64le_unknown_linux_gnu.rs | 17 +++++++++++++++++ - .../spec/targets/ppc64le_unknown_linux_musl.rs | 17 +++++++++++++++++ - src/bootstrap/configure.py | 2 ++ - src/doc/rustc/src/platform-support.md | 2 ++ - vendor/openssl-src/src/lib.rs | 3 +++ - vendor/target-lexicon/src/targets.rs | 3 +++ - 8 files changed, 63 insertions(+) + compiler/rustc_target/src/spec/mod.rs | 2 ++ + .../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 | 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 6c698c5b0..29575b9aa 100644 +index 291a761..e6e80a1 100644 --- a/compiler/rustc_target/src/spec/mod.rs +++ b/compiler/rustc_target/src/spec/mod.rs -@@ -1421,6 +1421,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), @@ -32,10 +31,10 @@ index 6c698c5b0..29575b9aa 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..41189b6fa +index 0000000..615bb67 --- /dev/null +++ b/compiler/rustc_target/src/spec/targets/ppc64le_unknown_freebsd.rs -@@ -0,0 +1,17 @@ +@@ -0,0 +1,23 @@ +use crate::spec::{base, Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions}; + +pub fn target() -> Target { @@ -47,6 +46,12 @@ index 000000000..41189b6fa + + Target { + llvm_target: "ppc64le-unknown-freebsd".into(), ++ metadata: crate::spec::TargetMetadata { ++ description: None, ++ tier: None, ++ host_tools: None, ++ std: None, ++ }, + pointer_width: 64, + data_layout: "e-m:e-Fn32-i64:64-n32:64".into(), + arch: "powerpc64".into(), @@ -55,10 +60,10 @@ index 000000000..41189b6fa +} 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..f60b84447 +index 0000000..5ff45e2 --- /dev/null +++ b/compiler/rustc_target/src/spec/targets/ppc64le_unknown_linux_gnu.rs -@@ -0,0 +1,17 @@ +@@ -0,0 +1,23 @@ +use crate::spec::{base, Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions}; + +pub fn target() -> Target { @@ -70,6 +75,12 @@ index 000000000..f60b84447 + + Target { + llvm_target: "ppc64le-unknown-linux-gnu".into(), ++ metadata: crate::spec::TargetMetadata { ++ description: None, ++ tier: None, ++ host_tools: None, ++ std: None, ++ }, + pointer_width: 64, + data_layout: "e-m:e-Fn32-i64:64-n32:64-S128-v256:256:256-v512:512:512".into(), + arch: "powerpc64".into(), @@ -78,10 +89,10 @@ index 000000000..f60b84447 +} 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..d497b674b +index 0000000..2b612e7 --- /dev/null +++ b/compiler/rustc_target/src/spec/targets/ppc64le_unknown_linux_musl.rs -@@ -0,0 +1,17 @@ +@@ -0,0 +1,23 @@ +use crate::spec::{base, Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions}; + +pub fn target() -> Target { @@ -93,6 +104,12 @@ index 000000000..d497b674b + + Target { + llvm_target: "ppc64le-unknown-linux-musl".into(), ++ metadata: crate::spec::TargetMetadata { ++ description: None, ++ tier: None, ++ host_tools: None, ++ std: None, ++ }, + pointer_width: 64, + data_layout: "e-m:e-Fn32-i64:64-n32:64-S128-v256:256:256-v512:512:512".into(), + arch: "powerpc64".into(), @@ -100,10 +117,10 @@ index 000000000..d497b674b + } +} diff --git a/src/bootstrap/configure.py b/src/bootstrap/configure.py -index d34c19a47..b6adafc5e 100755 +index 768aac9..155f21e 100755 --- a/src/bootstrap/configure.py +++ b/src/bootstrap/configure.py -@@ -126,6 +126,8 @@ v("musl-root-mips64", "target.mips64-unknown-linux-muslabi64.musl-root", +@@ -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") @@ -112,25 +129,10 @@ index d34c19a47..b6adafc5e 100755 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/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md -index f648a60b6..a905f27d7 100644 ---- a/src/doc/rustc/src/platform-support.md -+++ b/src/doc/rustc/src/platform-support.md -@@ -330,8 +330,10 @@ target | std | host | notes - `powerpc-wrs-vxworks` | ? | | - `powerpc64-unknown-freebsd` | ✓ | ✓ | PPC64 FreeBSD (ELFv1 and ELFv2) - `powerpc64le-unknown-freebsd` | | | PPC64LE FreeBSD -+`ppc64le-unknown-freebsd` | | | PPC64LE FreeBSD - `powerpc-unknown-freebsd` | | | PowerPC FreeBSD - `powerpc64-unknown-linux-musl` | ? | | -+`ppc64le-unknown-linux-musl` | ? | | - `powerpc64-wrs-vxworks` | ? | | - `powerpc64le-unknown-linux-musl` | ? | | - [`powerpc64-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | OpenBSD/powerpc64 -diff --git a/vendor/openssl-src/src/lib.rs b/vendor/openssl-src/src/lib.rs -index 1264742dc..14427a70e 100644 ---- a/vendor/openssl-src/src/lib.rs -+++ b/vendor/openssl-src/src/lib.rs +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", @@ -141,20 +143,20 @@ index 1264742dc..14427a70e 100644 "riscv64gc-unknown-linux-gnu" => "linux-generic64", "s390x-unknown-linux-gnu" => "linux64-s390x", "s390x-unknown-linux-musl" => "linux64-s390x", -diff --git a/vendor/target-lexicon/src/targets.rs b/vendor/target-lexicon/src/targets.rs -index d03d202a0..7d7c0ee95 100644 ---- a/vendor/target-lexicon/src/targets.rs -+++ b/vendor/target-lexicon/src/targets.rs -@@ -1624,6 +1624,9 @@ mod tests { +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", + "ppc64le-unknown-freebsd", + "ppc64le-unknown-linux-gnu", + "ppc64le-unknown-linux-musl", - "powerpc64-ibm-aix", "powerpc64-unknown-freebsd", "powerpc64-unknown-linux-gnu", + "powerpc64-unknown-linux-musl", -- 2.44.0 diff --git a/0001-add-support-for-sw64.patch b/0001-add-support-for-sw64.patch new file mode 100755 index 0000000000000000000000000000000000000000..040fb19cca37844cee5a4796b5aac83414ec5c38 --- /dev/null +++ b/0001-add-support-for-sw64.patch @@ -0,0 +1,22477 @@ +From f3f6006adfd1729e1702e57371f7088c120079fe Mon Sep 17 00:00:00 2001 +From: zhangminxuan +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 (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 { ++ 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( + "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(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 { + "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 { + } + 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 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 { + 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 { + } + 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 { ++ None ++ } ++ ++ pub fn suggest_modifier( ++ self, ++ _arch: InlineAsmArch, ++ _ty: InlineAsmType, ++ ) -> Option { ++ None ++ } ++ ++ pub fn default_modifier(self, _arch: InlineAsmArch) -> Option { ++ None ++ } ++ ++ pub fn supported_types( ++ self, ++ arch: InlineAsmArch, ++ ) -> &'static [(InlineAsmType, Option)] { ++ 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 . ++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, ++ ) -> 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 { + .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); + 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 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 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> { + "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 for U64x2 { ++ fn from(i: i128) -> U64x2 { ++ use crate::int::DInt; ++ let j = i as u128; ++ U64x2([j.lo(), j.hi()]) ++ } ++ } ++ ++ impl From 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(&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(&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(&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(&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(&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(&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(&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(&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(&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(&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(&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(&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(&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(&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(&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(&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(&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(&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(&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(&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(&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; ++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; ++pub type __sighandler_t = __signalfn_t; ++pub type __restorefn_t = ::core::option::Option; ++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, ++} ++#[repr(C)] ++#[derive(Default)] ++pub struct __IncompleteArrayField(::core::marker::PhantomData, [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, ++} ++#[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, ++} ++#[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, ++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, ++} ++#[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 __BindgenBitfieldUnit { ++#[inline] ++pub const fn new(storage: Storage) -> Self { ++Self { storage } ++} ++} ++impl __BindgenBitfieldUnit ++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 __IncompleteArrayField { ++#[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 ::core::fmt::Debug for __IncompleteArrayField { ++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(::core::marker::PhantomData, [T; 0]); ++#[repr(C)] ++pub struct __BindgenUnionField(::core::marker::PhantomData); ++#[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, ++} ++#[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, ++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, ++} ++#[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, ++pub __bindgen_anon_2: __BindgenUnionField, ++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, ++} ++#[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 __IncompleteArrayField { ++#[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 ::core::fmt::Debug for __IncompleteArrayField { ++fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { ++fmt.write_str("__IncompleteArrayField") ++} ++} ++impl __BindgenUnionField { ++#[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 ::core::default::Default for __BindgenUnionField { ++#[inline] ++fn default() -> Self { ++Self::new() ++} ++} ++impl ::core::clone::Clone for __BindgenUnionField { ++#[inline] ++fn clone(&self) -> Self { ++Self::new() ++} ++} ++impl ::core::marker::Copy for __BindgenUnionField {} ++impl ::core::fmt::Debug for __BindgenUnionField { ++fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { ++fmt.write_str("__BindgenUnionField") ++} ++} ++impl ::core::hash::Hash for __BindgenUnionField { ++fn hash(&self, _state: &mut H) {} ++} ++impl ::core::cmp::PartialEq for __BindgenUnionField { ++fn eq(&self, _other: &__BindgenUnionField) -> bool { ++true ++} ++} ++impl ::core::cmp::Eq for __BindgenUnionField {} +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, ++} ++#[repr(C)] ++#[derive(Default)] ++pub struct __IncompleteArrayField(::core::marker::PhantomData, [T; 0]); ++#[repr(C)] ++pub struct __BindgenUnionField(::core::marker::PhantomData); ++#[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, ++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, ++pub __bindgen_anon_2: __BindgenUnionField, ++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, ++} ++#[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, ++} ++#[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, ++} ++#[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, ++} ++#[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, ++} ++#[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, ++} ++#[repr(C)] ++pub struct ip6t_get_entries { ++pub name: [crate::ctypes::c_char; 32usize], ++pub size: crate::ctypes::c_uint, ++pub entrytable: __IncompleteArrayField, ++} ++#[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 __BindgenBitfieldUnit { ++#[inline] ++pub const fn new(storage: Storage) -> Self { ++Self { storage } ++} ++} ++impl __BindgenBitfieldUnit ++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 __IncompleteArrayField { ++#[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 ::core::fmt::Debug for __IncompleteArrayField { ++fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { ++fmt.write_str("__IncompleteArrayField") ++} ++} ++impl __BindgenUnionField { ++#[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 ::core::default::Default for __BindgenUnionField { ++#[inline] ++fn default() -> Self { ++Self::new() ++} ++} ++impl ::core::clone::Clone for __BindgenUnionField { ++#[inline] ++fn clone(&self) -> Self { ++Self::new() ++} ++} ++impl ::core::marker::Copy for __BindgenUnionField {} ++impl ::core::fmt::Debug for __BindgenUnionField { ++fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { ++fmt.write_str("__BindgenUnionField") ++} ++} ++impl ::core::hash::Hash for __BindgenUnionField { ++fn hash(&self, _state: &mut H) {} ++} ++impl ::core::cmp::PartialEq for __BindgenUnionField { ++fn eq(&self, _other: &__BindgenUnionField) -> bool { ++true ++} ++} ++impl ::core::cmp::Eq for __BindgenUnionField {} ++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(::core::marker::PhantomData, [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 __IncompleteArrayField { ++#[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 ::core::fmt::Debug for __IncompleteArrayField { ++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(::core::marker::PhantomData, [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, ++} ++#[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 __IncompleteArrayField { ++#[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 ::core::fmt::Debug for __IncompleteArrayField { ++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 { + 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( + 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 { + 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 { + 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::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 { + 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 { + 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::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 { + 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::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 { + 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 { + 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::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 { + 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 io::Result) -> io::Result { + + // 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 { + + // 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 { + 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 { +@@ -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::() + ); + + // 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-fix-build-error-for-loongarch64.patch b/0001-fix-build-error-for-loongarch64.patch new file mode 100644 index 0000000000000000000000000000000000000000..4acb4e864593f150069b44ad50f88026478aa433 --- /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 + "wasm32" | "wasm64" => (false, true), ++ "loongarch64" => (false, true), ++ "riscv64" | "riscv64gc" => (false, true), + // Most everything else works as of LLVM 19 + _ => (true, true), + }; diff --git a/embed-riscv64-target-abi-in-bc-when-plugin-_-lto-is-used.patch b/embed-riscv64-target-abi-in-bc-when-plugin-_-lto-is-used.patch deleted file mode 100644 index 631a5eb9fb1006f2268e9a569730917ef8e2b892..0000000000000000000000000000000000000000 --- a/embed-riscv64-target-abi-in-bc-when-plugin-_-lto-is-used.patch +++ /dev/null @@ -1,296 +0,0 @@ -From a599284dbac82d272aac53a7ace524484b4bb4dc Mon Sep 17 00:00:00 2001 -From: kxxt -Date: Sun, 28 Jan 2024 18:38:41 +0800 -Subject: [PATCH] embed riscv64 target abi in bc when plugin-lto is used - -Fixes chromium linking error. - -Related: -- https://discourse.llvm.org/t/encode-target-abi-into-llvm-bitcode-for-lto/54116 -- https://internals.rust-lang.org/t/per-target-llvm-module-flags/12023 ---- - compiler/rustc_codegen_llvm/src/back/lto.rs | 2 +- - compiler/rustc_codegen_llvm/src/context.rs | 49 +++++++++++++------ - .../rustc_codegen_llvm/src/debuginfo/mod.rs | 6 +-- - compiler/rustc_codegen_llvm/src/llvm/ffi.rs | 10 +++- - compiler/rustc_codegen_llvm/src/llvm/mod.rs | 5 ++ - .../rustc_llvm/llvm-wrapper/RustWrapper.cpp | 11 ++++- - 6 files changed, 62 insertions(+), 21 deletions(-) - -diff --git a/compiler/rustc_codegen_llvm/src/back/lto.rs b/compiler/rustc_codegen_llvm/src/back/lto.rs -index 42bd8687042a1..6c204b7ab2bc9 100644 ---- a/compiler/rustc_codegen_llvm/src/back/lto.rs -+++ b/compiler/rustc_codegen_llvm/src/back/lto.rs -@@ -607,7 +607,7 @@ pub(crate) fn run_pass_manager( - "LTOPostLink".as_ptr().cast(), - 11, - ) { -- llvm::LLVMRustAddModuleFlag( -+ llvm::LLVMRustAddModuleFlagU32( - module.module_llvm.llmod(), - llvm::LLVMModFlagBehavior::Error, - c"LTOPostLink".as_ptr().cast(), -diff --git a/compiler/rustc_codegen_llvm/src/context.rs b/compiler/rustc_codegen_llvm/src/context.rs -index 6cb62280a595e..ebb657f97b398 100644 ---- a/compiler/rustc_codegen_llvm/src/context.rs -+++ b/compiler/rustc_codegen_llvm/src/context.rs -@@ -30,6 +30,7 @@ use rustc_span::Span; - use rustc_target::abi::{ - call::FnAbi, HasDataLayout, PointeeInfo, Size, TargetDataLayout, VariantIdx, - }; -+use rustc_target::spec::TargetTriple; - use rustc_target::spec::{HasTargetSpec, RelocModel, Target, TlsModel}; - use smallvec::SmallVec; - -@@ -203,13 +204,13 @@ pub unsafe fn create_module<'ll>( - // to ensure intrinsic calls don't use it. - if !sess.needs_plt() { - let avoid_plt = c"RtLibUseGOT".as_ptr().cast(); -- llvm::LLVMRustAddModuleFlag(llmod, llvm::LLVMModFlagBehavior::Warning, avoid_plt, 1); -+ llvm::LLVMRustAddModuleFlagU32(llmod, llvm::LLVMModFlagBehavior::Warning, avoid_plt, 1); - } - - // Enable canonical jump tables if CFI is enabled. (See https://reviews.llvm.org/D65629.) - if sess.is_sanitizer_cfi_canonical_jump_tables_enabled() && sess.is_sanitizer_cfi_enabled() { - let canonical_jump_tables = c"CFI Canonical Jump Tables".as_ptr().cast(); -- llvm::LLVMRustAddModuleFlag( -+ llvm::LLVMRustAddModuleFlagU32( - llmod, - llvm::LLVMModFlagBehavior::Override, - canonical_jump_tables, -@@ -220,7 +221,7 @@ pub unsafe fn create_module<'ll>( - // Enable LTO unit splitting if specified or if CFI is enabled. (See https://reviews.llvm.org/D53891.) - if sess.is_split_lto_unit_enabled() || sess.is_sanitizer_cfi_enabled() { - let enable_split_lto_unit = c"EnableSplitLTOUnit".as_ptr().cast(); -- llvm::LLVMRustAddModuleFlag( -+ llvm::LLVMRustAddModuleFlagU32( - llmod, - llvm::LLVMModFlagBehavior::Override, - enable_split_lto_unit, -@@ -231,7 +232,7 @@ pub unsafe fn create_module<'ll>( - // Add "kcfi" module flag if KCFI is enabled. (See https://reviews.llvm.org/D119296.) - if sess.is_sanitizer_kcfi_enabled() { - let kcfi = c"kcfi".as_ptr().cast(); -- llvm::LLVMRustAddModuleFlag(llmod, llvm::LLVMModFlagBehavior::Override, kcfi, 1); -+ llvm::LLVMRustAddModuleFlagU32(llmod, llvm::LLVMModFlagBehavior::Override, kcfi, 1); - } - - // Control Flow Guard is currently only supported by the MSVC linker on Windows. -@@ -240,7 +241,7 @@ pub unsafe fn create_module<'ll>( - CFGuard::Disabled => {} - CFGuard::NoChecks => { - // Set `cfguard=1` module flag to emit metadata only. -- llvm::LLVMRustAddModuleFlag( -+ llvm::LLVMRustAddModuleFlagU32( - llmod, - llvm::LLVMModFlagBehavior::Warning, - c"cfguard".as_ptr() as *const _, -@@ -249,7 +250,7 @@ pub unsafe fn create_module<'ll>( - } - CFGuard::Checks => { - // Set `cfguard=2` module flag to emit metadata and checks. -- llvm::LLVMRustAddModuleFlag( -+ llvm::LLVMRustAddModuleFlagU32( - llmod, - llvm::LLVMModFlagBehavior::Warning, - c"cfguard".as_ptr() as *const _, -@@ -267,26 +268,26 @@ pub unsafe fn create_module<'ll>( - }; - - if sess.target.arch == "aarch64" { -- llvm::LLVMRustAddModuleFlag( -+ llvm::LLVMRustAddModuleFlagU32( - llmod, - behavior, - c"branch-target-enforcement".as_ptr().cast(), - bti.into(), - ); -- llvm::LLVMRustAddModuleFlag( -+ llvm::LLVMRustAddModuleFlagU32( - llmod, - behavior, - c"sign-return-address".as_ptr().cast(), - pac_ret.is_some().into(), - ); - let pac_opts = pac_ret.unwrap_or(PacRet { leaf: false, key: PAuthKey::A }); -- llvm::LLVMRustAddModuleFlag( -+ llvm::LLVMRustAddModuleFlagU32( - llmod, - behavior, - c"sign-return-address-all".as_ptr().cast(), - pac_opts.leaf.into(), - ); -- llvm::LLVMRustAddModuleFlag( -+ llvm::LLVMRustAddModuleFlagU32( - llmod, - behavior, - c"sign-return-address-with-bkey".as_ptr().cast(), -@@ -302,7 +303,7 @@ pub unsafe fn create_module<'ll>( - - // Pass on the control-flow protection flags to LLVM (equivalent to `-fcf-protection` in Clang). - if let CFProtection::Branch | CFProtection::Full = sess.opts.unstable_opts.cf_protection { -- llvm::LLVMRustAddModuleFlag( -+ llvm::LLVMRustAddModuleFlagU32( - llmod, - llvm::LLVMModFlagBehavior::Override, - c"cf-protection-branch".as_ptr().cast(), -@@ -310,7 +311,7 @@ pub unsafe fn create_module<'ll>( - ) - } - if let CFProtection::Return | CFProtection::Full = sess.opts.unstable_opts.cf_protection { -- llvm::LLVMRustAddModuleFlag( -+ llvm::LLVMRustAddModuleFlagU32( - llmod, - llvm::LLVMModFlagBehavior::Override, - c"cf-protection-return".as_ptr().cast(), -@@ -319,7 +320,7 @@ pub unsafe fn create_module<'ll>( - } - - if sess.opts.unstable_opts.virtual_function_elimination { -- llvm::LLVMRustAddModuleFlag( -+ llvm::LLVMRustAddModuleFlagU32( - llmod, - llvm::LLVMModFlagBehavior::Error, - c"Virtual Function Elim".as_ptr().cast(), -@@ -329,7 +330,7 @@ pub unsafe fn create_module<'ll>( - - // Set module flag to enable Windows EHCont Guard (/guard:ehcont). - if sess.opts.unstable_opts.ehcont_guard { -- llvm::LLVMRustAddModuleFlag( -+ llvm::LLVMRustAddModuleFlagU32( - llmod, - llvm::LLVMModFlagBehavior::Warning, - c"ehcontguard".as_ptr() as *const _, -@@ -354,6 +355,24 @@ pub unsafe fn create_module<'ll>( - llvm::LLVMMDNodeInContext(llcx, &name_metadata, 1), - ); - -+ // Embed target-abi into bitcode for rv64gc when plugin-lto is enabled -+ // Relevant: -+ // https://discourse.llvm.org/t/encode-target-abi-into-llvm-bitcode-for-lto/54116 -+ // https://internals.rust-lang.org/t/per-target-llvm-module-flags/12023 -+ if sess.opts.cg.linker_plugin_lto.enabled() { -+ let TargetTriple::TargetTriple(ref triple) = sess.opts.target_triple else { -+ panic!("Unexpected TargetTriple::TargetJson") -+ }; -+ if triple == "riscv64gc-unknown-linux-gnu" { -+ llvm::LLVMRustAddModuleFlagString( -+ llmod, -+ llvm::LLVMModFlagBehavior::Error, -+ c"target-abi".as_ptr() as *const _, -+ c"lp64d".as_ptr() as *const _, -+ ) -+ } -+ } -+ - // Add module flags specified via -Z llvm_module_flag - for (key, value, behavior) in &sess.opts.unstable_opts.llvm_module_flag { - let key = format!("{key}\0"); -@@ -369,7 +388,7 @@ pub unsafe fn create_module<'ll>( - // We already checked this during option parsing - _ => unreachable!(), - }; -- llvm::LLVMRustAddModuleFlag(llmod, behavior, key.as_ptr().cast(), *value) -+ llvm::LLVMRustAddModuleFlagU32(llmod, behavior, key.as_ptr().cast(), *value) - } - - llmod -diff --git a/compiler/rustc_codegen_llvm/src/debuginfo/mod.rs b/compiler/rustc_codegen_llvm/src/debuginfo/mod.rs -index d3a851b40c0a2..4fdaa59e0e559 100644 ---- a/compiler/rustc_codegen_llvm/src/debuginfo/mod.rs -+++ b/compiler/rustc_codegen_llvm/src/debuginfo/mod.rs -@@ -110,7 +110,7 @@ impl<'ll, 'tcx> CodegenUnitDebugContext<'ll, 'tcx> { - .unstable_opts - .dwarf_version - .unwrap_or(sess.target.default_dwarf_version); -- llvm::LLVMRustAddModuleFlag( -+ llvm::LLVMRustAddModuleFlagU32( - self.llmod, - llvm::LLVMModFlagBehavior::Warning, - c"Dwarf Version".as_ptr().cast(), -@@ -118,7 +118,7 @@ impl<'ll, 'tcx> CodegenUnitDebugContext<'ll, 'tcx> { - ); - } else { - // Indicate that we want CodeView debug information on MSVC -- llvm::LLVMRustAddModuleFlag( -+ llvm::LLVMRustAddModuleFlagU32( - self.llmod, - llvm::LLVMModFlagBehavior::Warning, - c"CodeView".as_ptr().cast(), -@@ -127,7 +127,7 @@ impl<'ll, 'tcx> CodegenUnitDebugContext<'ll, 'tcx> { - } - - // Prevent bitcode readers from deleting the debug info. -- llvm::LLVMRustAddModuleFlag( -+ llvm::LLVMRustAddModuleFlagU32( - self.llmod, - llvm::LLVMModFlagBehavior::Warning, - c"Debug Info Version".as_ptr().cast(), -diff --git a/compiler/rustc_codegen_llvm/src/llvm/ffi.rs b/compiler/rustc_codegen_llvm/src/llvm/ffi.rs -index ee73c6b4756f0..4d1fc09c54854 100644 ---- a/compiler/rustc_codegen_llvm/src/llvm/ffi.rs -+++ b/compiler/rustc_codegen_llvm/src/llvm/ffi.rs -@@ -1793,12 +1793,20 @@ extern "C" { - /// - /// In order for Rust-C LTO to work, module flags must be compatible with Clang. What - /// "compatible" means depends on the merge behaviors involved. -- pub fn LLVMRustAddModuleFlag( -+ pub fn LLVMRustAddModuleFlagU32( - M: &Module, - merge_behavior: LLVMModFlagBehavior, - name: *const c_char, - value: u32, - ); -+ -+ pub fn LLVMRustAddModuleFlagString( -+ M: &Module, -+ merge_behavior: LLVMModFlagBehavior, -+ name: *const c_char, -+ value: *const c_char, -+ ); -+ - pub fn LLVMRustHasModuleFlag(M: &Module, name: *const c_char, len: size_t) -> bool; - - pub fn LLVMRustDIBuilderCreate(M: &Module) -> &mut DIBuilder<'_>; -diff --git a/compiler/rustc_codegen_llvm/src/llvm/mod.rs b/compiler/rustc_codegen_llvm/src/llvm/mod.rs -index 4f5cc575da6e5..73cd5e3052413 100644 ---- a/compiler/rustc_codegen_llvm/src/llvm/mod.rs -+++ b/compiler/rustc_codegen_llvm/src/llvm/mod.rs -@@ -324,3 +324,8 @@ impl Drop for OperandBundleDef<'_> { - } - } - } -+ -+pub enum LLVMModFlagValue { -+ String(String), -+ U32(u32), -+} -diff --git a/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp b/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp -index 0df7b7eed11f9..7408526f6ebef 100644 ---- a/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp -+++ b/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp -@@ -748,7 +748,7 @@ extern "C" uint32_t LLVMRustVersionMinor() { return LLVM_VERSION_MINOR; } - - extern "C" uint32_t LLVMRustVersionMajor() { return LLVM_VERSION_MAJOR; } - --extern "C" void LLVMRustAddModuleFlag( -+extern "C" void LLVMRustAddModuleFlagU32( - LLVMModuleRef M, - Module::ModFlagBehavior MergeBehavior, - const char *Name, -@@ -756,6 +756,15 @@ extern "C" void LLVMRustAddModuleFlag( - unwrap(M)->addModuleFlag(MergeBehavior, Name, Value); - } - -+extern "C" void LLVMRustAddModuleFlagString( -+ LLVMModuleRef M, -+ Module::ModFlagBehavior MergeBehavior, -+ const char *Name, -+ const char *Value) { -+ llvm::LLVMContext &Ctx = unwrap(M)->getContext(); -+ unwrap(M)->addModuleFlag(MergeBehavior, Name, llvm::MDString::get(Ctx, Value)); -+} -+ - extern "C" bool LLVMRustHasModuleFlag(LLVMModuleRef M, const char *Name, - size_t Len) { - return unwrap(M)->getModuleFlag(StringRef(Name, Len)) != nullptr; 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 0000000000000000000000000000000000000000..5e0f13e21f96c61760f231e94a90bdfb625a8cfc --- /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 0000000000000000000000000000000000000000..5cc89de1b4be667a3f90749fe6f2f81e916389b3 --- /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 0000000000000000000000000000000000000000..3c3cd4f2bf50138272fd00027b72f311ac901a65 --- /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 0000000000000000000000000000000000000000..e92b3a3207c271cd5705a29645f79596ec1b77fd --- /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.spec b/rust.spec index 8350270bc38e817aa7bf918bbde1e50eccd2368a..f46a329231f10222870d2d791b91fdc2dbab1e34 100644 --- a/rust.spec +++ b/rust.spec @@ -1,17 +1,31 @@ -%global bootstrap_rust 1.76.0 -%global bootstrap_cargo 1.76.0 -%global bootstrap_channel 1.76.0 -%global bootstrap_date 2024-02-08 +%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 loongarch64 %bcond_with bundled_llvm +%else +%bcond_without bundled_llvm +%endif %bcond_without bundled_libgit2 %bcond_with disabled_libssh2 %bcond_without lldb -%bcond_without analyzer +# disable rust-lld (enabled by default on x86 since 1.80.0 via pull/124129) for +# building with system llvm (17.0.6) +# https://github.com/rust-lang/rust/issues/131291 +%ifarch %{ix86} x86_64 +%bcond_with rust_lld +%endif + +%ifnarch riscv64 loongarch64 +%bcond_without musl_target +%endif Name: rust -Version: 1.77.0 -Release: 5 +Version: 1.82.0 +Release: 1 Summary: The Rust Programming Language License: Apache-2.0 OR MIT URL: https://www.rust-lang.org @@ -23,16 +37,16 @@ Source3: cargo-config Source4: cargo-config.sh Source5: cargo-config.csh -Patch0000: rustc-1.77.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 - -%ifarch riscv64 -Patch1000: embed-riscv64-target-abi-in-bc-when-plugin-_-lto-is-used.patch -%endif +# 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 %{lua: function rust_triple(arch) local abi = "gnu" @@ -77,9 +91,9 @@ end} local target_arch = rpm.expand("%{_target_cpu}") for i, arch in ipairs(bootstrap_arches) do print(string.format("Source%d: %s-%s.tar.xz\n", - i, base, rust_triple(arch))) + i+5, base, rust_triple(arch))) if arch == target_arch then - rpm.define("bootstrap_source "..i) + rpm.define("bootstrap_source "..i+5) end end end} @@ -93,33 +107,49 @@ BuildRequires: cargo >= %{bootstrap_cargo} BuildRequires: (%{name} >= %{bootstrap_rust} with %{name} <= %{version}) %global local_rust_root %{_prefix} %endif +%if %{with musl_target} BuildRequires: make gcc gcc-c++ ncurses-devel curl curl-devel musl-libc-static musl-gcc pkgconfig(libcurl) pkgconfig(liblzma) +%else +BuildRequires: make gcc gcc-c++ ncurses-devel curl curl-devel pkgconfig(libcurl) pkgconfig(liblzma) +%endif BuildRequires: pkgconfig(openssl) pkgconfig(zlib) pkgconfig(libssh2) >= 1.6.0 gnupg2 wget %global python python3 BuildRequires: %{python} %if %with bundled_llvm BuildRequires: cmake3 >= 3.13.4 -Provides: bundled(llvm) = 17.0.4 +Provides: bundled(llvm) = 19.1.1 %else 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 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 -# rust currently requires llvm 14.0+ -BuildRequires: %{llvm} >= 15.0.0 -BuildRequires: %{llvm}-devel >= 15.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 %endif BuildRequires: procps-ng BuildRequires: ninja-build +%ifarch x86_64 aarch64 riscv64 loongarch64 +BuildRequires: llvm-toolset-18-compiler-rt +BuildRequires: llvm-toolset-18-clang +%else BuildRequires: compiler-rt BuildRequires: clang +%endif Provides: rustc = %{version}-%{release} Provides: rustc%{?_isa} = %{version}-%{release} Requires: %{name}-std-static%{?_isa} = %{version}-%{release} @@ -201,7 +231,6 @@ Conflicts: rustfmt-preview < 1.0.0 %description -n rustfmt A tool for formatting Rust code according to style guidelines. -%if %{with analyzer} %package analyzer Summary:Rust implementation of the Language Server Protocol Requires: %{name}-src @@ -209,12 +238,12 @@ Requires: %{name}-src # binary that implements LSP just enough to recommend rust-analyzer. Obsoletes: rls < 1.65.0~ Obsoletes: rls-preview < 1.31.6 +Requires: %{name} = %{version}-%{release} %description analyzer rust-analyzer is an implementation of Language Server Protocol for the Rust programming language. It provides features like completion and goto definition for many code editors, including VS Code, Emacs and Vim. -%endif %package -n clippy Summary: Lints to catch common mistakes and improve your Rust code @@ -242,8 +271,7 @@ Obsoletes: %{name}-doc < %{version}-%{release} %{name}-cargo-doc < %{version}- Man pages and other related help documents for rust. %prep -# download source0 and gpg check -wget -qO %{SOURCE0} https://user-repo.openeuler.openatom.cn/lfs-tar/rust/rustc-%{version}-src.tar.xz +# gpg check gpg --import %{SOURCE2} gpg --verify %{SOURCE1} %{SOURCE0} @@ -264,9 +292,9 @@ sed -i.try-python -e '/^try python3 /i try "%{python}" "$@"' ./configure %patch -P 0001 -p1 %patch -P 0002 -p1 %patch -P 0003 -p1 -%ifarch riscv64 -%patch -P 1000 -p1 -%endif +%patch -P 0004 -p1 +%patch -P 0005 -p1 +%patch -P 0006 -p1 rm -rf vendor/curl-sys*/curl/ rm -rf vendor/jemalloc-sys/jemalloc/ rm -rf vendor/libffi-sys*/libffi/ @@ -315,7 +343,11 @@ export %{rust_env} %define codegen_units_std --set rust.codegen-units-std=1 %endif ncpus=$(/usr/bin/getconf _NPROCESSORS_ONLN) +%if %{with bundled_llvm} +max_cpus=$(( ($(free -g | awk '/^Mem:/{print $2}') + 1) / 4 )) +%else max_cpus=$(( ($(free -g | awk '/^Mem:/{print $2}') + 1) / 2 )) +%endif if [ "$max_cpus" -ge 1 -a "$max_cpus" -lt "$ncpus" ]; then ncpus="$max_cpus" fi @@ -326,10 +358,9 @@ fi %ifarch ppc64le %global _arch powerpc64le %endif -%global clang_maj_ver 17 %if %{?clang_maj_ver} >= 17 # This is the new one, used on openEuler 24.03 LTS or later -%define profiler %(echo %{_prefix}/%{_lib}/clang/%{clang_maj_ver}/lib/%{_arch}-%{_vendor}-linux-gnu/libclang_rt.profile.a) +%define profiler %(echo %{llvm_root}/%{_lib}/clang/%{clang_maj_ver}/lib/%{_arch}-%{_vendor}-linux-gnu/libclang_rt.profile.a) %else # This is used before openEuler 23.09 %global clang_full_ver %%(clang --version | awk '/clang version/{print $3}') @@ -338,14 +369,12 @@ fi test -r "%{profiler}" %configure --disable-option-checking \ + --docdir=%{_pkgdocdir} \ --libdir=%{common_libdir} \ -%ifarch loongarch64 - --build=%{rust_triple} --host=%{rust_triple} --target=%{rust_triple} \ -%else - %{rust_musl_root}=%{musl_root} \ - --build=%{rust_triple} --host=%{rust_triple} --target=%{rust_triple},%{rust_musl_triple} \ -%endif + %{?with_musl_target:%{rust_musl_root}=%{musl_root}} \ + --build=%{rust_triple} --host=%{rust_triple} --target=%{rust_triple}%{?with_musl_target:,%{rust_musl_triple}} \ --set target.%{rust_triple}.profiler="%{profiler}" \ + %{!?with_rust_lld: --set rust.lld=false} \ --python=%{python} \ --local-rust-root=%{local_rust_root} \ %{!?with_bundled_llvm: --llvm-root=%{llvm_root} \ @@ -354,12 +383,16 @@ test -r "%{profiler}" --disable-rpath \ %{enable_debuginfo} \ --enable-extended \ - --tools=cargo,clippy,%{?with_analyzer:rls,rust-analyzer,}rustfmt,src \ + --tools=cargo,clippy,rust-analyzer,rustfmt,src \ --enable-vendor \ --enable-verbose-tests \ %{?codegen_units_std} \ --release-channel=stable -%{python} ./x.py build -j "$ncpus" --stage 2 +%ifarch loongarch64 + %{python} ./x.py build -j "$((($ncpus + 3) / 4))" --stage 2 +%else + %{python} ./x.py build -j "$ncpus" --stage 2 +%endif %{python} ./x.py doc --stage 2 %install @@ -388,15 +421,15 @@ find %{buildroot}%{_libdir} -maxdepth 1 -type f -name '*.so' \ find %{buildroot}%{rustlibdir} -maxdepth 1 -type f -exec rm -v '{}' '+' find %{buildroot}%{rustlibdir} -type f -name '*.orig' -exec rm -v '{}' '+' find %{buildroot}%{rustlibdir}/src -type f -name '*.py' -exec rm -v '{}' '+' -rm -f %{buildroot}%{_docdir}/%{name}/README.md -rm -f %{buildroot}%{_docdir}/%{name}/COPYRIGHT -rm -f %{buildroot}%{_docdir}/%{name}/LICENSE -rm -f %{buildroot}%{_docdir}/%{name}/LICENSE-APACHE -rm -f %{buildroot}%{_docdir}/%{name}/LICENSE-MIT -rm -f %{buildroot}%{_docdir}/%{name}/LICENSE-THIRD-PARTY -rm -f %{buildroot}%{_docdir}/%{name}/*.old -find %{buildroot}%{_docdir}/%{name}/html -empty -delete -find %{buildroot}%{_docdir}/%{name}/html -type f -exec chmod -x '{}' '+' +rm -f %{buildroot}%{_pkgdocdir}/README.md +rm -f %{buildroot}%{_pkgdocdir}/COPYRIGHT +rm -f %{buildroot}%{_pkgdocdir}/LICENSE +rm -f %{buildroot}%{_pkgdocdir}/LICENSE-APACHE +rm -f %{buildroot}%{_pkgdocdir}/LICENSE-MIT +rm -f %{buildroot}%{_pkgdocdir}/LICENSE-THIRD-PARTY +rm -f %{buildroot}%{_pkgdocdir}/*.old +find %{buildroot}%{_pkgdocdir}/html -empty -delete +find %{buildroot}%{_pkgdocdir}/html -type f -exec chmod -x '{}' '+' mkdir -p %{buildroot}%{_datadir}/cargo/registry mkdir -p %{buildroot}%{_docdir}/cargo ln -sT ../rust/html/cargo/ %{buildroot}%{_docdir}/cargo/html @@ -406,11 +439,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 -%if %{with analyzer} -# The rls stub doesn't have an install target, but we can just copy it. -%{__install} -t %{buildroot}%{_bindir} build/%{rust_triple}/stage2-tools-bin/rls -%endif - %if %without lldb rm -f %{buildroot}%{_bindir}/rust-lldb rm -f %{buildroot}%{rustlibdir}/etc/lldb_* @@ -420,17 +448,19 @@ rm -f %{buildroot}%{rustlibdir}/%{rust_triple}/bin/rust-ll* %check export %{rust_env} %{python} ./x.py test --no-fail-fast --stage 2 || : -%{python} ./x.py test --no-fail-fast --stage 2 cargo || : +%ifarch aarch64 +# https://github.com/rust-lang/rust/issues/123733 +%define cargo_test_skip --test-args "--skip panic_abort_doc_tests" +%endif +%{python} ./x.py test --no-fail-fast --stage 2 cargo %{?cargo_test_skip} || : %{python} ./x.py test --no-fail-fast --stage 2 clippy || : -%if %{with analyzer} %{python} ./x.py test --no-fail-fast --stage 2 rust-analyzer || : -%endif %{python} ./x.py test --no-fail-fast --stage 2 rustfmt || : %ldconfig_scriptlets %files %license COPYRIGHT LICENSE-APACHE LICENSE-MIT -%license %{_docdir}/%{name}/html/*.txt +%license %{_pkgdocdir}/html/*.txt %doc README.md %{_bindir}/rustc %{_bindir}/rustdoc @@ -438,11 +468,9 @@ export %{rust_env} %dir %{rustlibdir} %dir %{rustlibdir}/%{rust_triple} %dir %{rustlibdir}/%{rust_triple}/lib -%if %{with analyzer} %{_libexecdir}/rust-analyzer-proc-macro-srv -%endif %{rustlibdir}/%{rust_triple}/lib/*.so -%ifnarch loongarch64 +%if %{with musl_target} %dir %{rustlibdir}/%{rust_musl_triple} %dir %{rustlibdir}/%{rust_musl_triple}/lib %endif @@ -452,7 +480,7 @@ export %{rust_env} %dir %{rustlibdir}/%{rust_triple} %dir %{rustlibdir}/%{rust_triple}/lib %{rustlibdir}/%{rust_triple}/lib/*.rlib -%ifnarch loongarch64 +%if %{with musl_target} %dir %{rustlibdir}/%{rust_musl_triple} %dir %{rustlibdir}/%{rust_musl_triple}/lib %{rustlibdir}/%{rust_musl_triple}/lib/*.rlib @@ -494,13 +522,10 @@ export %{rust_env} %doc src/tools/rustfmt/{README,CHANGELOG,Configurations}.md %license src/tools/rustfmt/LICENSE-{APACHE,MIT} -%if %{with analyzer} %files analyzer -%{_bindir}/rls %{_bindir}/rust-analyzer %doc src/tools/rust-analyzer/README.md %license src/tools/rust-analyzer/LICENSE-{APACHE,MIT} -%endif %files -n clippy %{_bindir}/cargo-clippy @@ -513,9 +538,9 @@ export %{rust_env} %{rustlibdir}/src %files help -%dir %{_docdir}/%{name} -%docdir %{_docdir}/%{name} -%{_docdir}/%{name}/html +%dir %{_pkgdocdir} +%docdir %{_pkgdocdir} +%{_pkgdocdir}/html %dir %{_docdir}/cargo %docdir %{_docdir}/cargo %{_docdir}/cargo/html @@ -524,6 +549,29 @@ export %{rust_env} %{_mandir}/man1/cargo*.1* %changelog +* Tue Sep 23 2025 wangkai <13474090681@163.com> - 1.82.0-1 +- Update to 1.82.0 because firefox update 140ESR version +- Synchronize the code from the openEuler-24.03-LTS-SP1 branch +- Remove rls command + +* Tue Oct 22 2024 zhangwenlong - 1.80.0-2 +- disable musl for loongarch64 + +* Wed Aug 07 2024 wangkai <13474090681@163.com> - 1.80.0-1 +- Update to 1.80.0 + +* Wed Jul 24 2024 wangkai <13474090681@163.com> - 1.79.0-3 +- Switch to bootstrap compilation + +* Thu Jul 18 2024 jchzhou - 1.79.0-2 +- Drop obsolete patch for riscv64 (rust-lang/rust#123612 landed in 1.79.0) + +* Wed Jun 19 2024 wangkai <13474090681@163.com> - 1.79.0-1 +- Update to 1.79.0 + +* Tue May 07 2024 wangkai <13474090681@163.com> - 1.78.0-1 +- Update to 1.78.0 + * Thu Jun 13 2024 jianchunfu - 1.77.0-5 - spec: Add support for ppc64le diff --git a/rustc-1.77.0-src.tar.xz b/rustc-1.77.0-src.tar.xz deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/rustc-1.77.0-src.tar.xz.asc b/rustc-1.77.0-src.tar.xz.asc deleted file mode 100644 index 44f12326ef24c83340f55f5ac6131929e7af42d8..0000000000000000000000000000000000000000 --- a/rustc-1.77.0-src.tar.xz.asc +++ /dev/null @@ -1,16 +0,0 @@ ------BEGIN PGP SIGNATURE----- - -wsFcBAABCgAQBQJl/CkOCRCFq5bm+hvl/gAAuN4P/AxpjflIRg2vOkzczcrTlQYU -fe9c75ru0IH5RpKZ4sTVaG+qoJqsTD/08Dzv06KzNqiShXFBGsSaZ3f46n7jZW8f -bYQFNeCU8jz2DxxvoAty38Zlk5ib/38Cu95ckSoXBDuycXrFTY9ojc6NWSu2vNE4 -JXv2yRkW6hiNdO87/KV5H8eshklOGudWVkcoRRZw91X2DopsdqTMiCHzPOWGK3J1 -mdz9DjkVj6DKDetrbuX/7N1zosI49Zmg5Eb15JE30pG43l7pyCfKtB2IKpLmugNn -hSi9QqpL0/qKHWVNJ2E2ZkVrCtdX8crxlN8iE/U+VNVa7ZpzsIv7w7SYI4e15HEd -pPWfurYy0gKNpOABiROebqfAfPgDUyU9sufvDnQJD5jv0LWqrBibm2fekIc4xC1B -hvXU46xfXiVqwIgR5FjmwVEwphZoGmju4WrMLQ/bVjfMC8MInISQv4MiFw/0JY/B -f0ePnVQ2kRU/ls1VxidXnKalTNSoR1ORGVDNR3wJV0Ju9xROzWWO0b9p4m5ciyO+ -uwMTQcyxyCtNfnxpXTB3XY2YD1ZjqIzop9D3+aRMajxa/PmlxhgXveUjDUc6tc+v -9rQODuxbKHKbg4BlVrtMWIVDV0zArASTuTI3u74+aPCht7Dq3AsnWHhAydeGKwoT -hM+dv4sh161mi7G6WMgN -=eWLu ------END PGP SIGNATURE----- diff --git a/rustc-1.77.0-disable-libssh2.patch b/rustc-1.82.0-disable-libssh2.patch similarity index 43% rename from rustc-1.77.0-disable-libssh2.patch rename to rustc-1.82.0-disable-libssh2.patch index 859fecb7018c134dca64ce1bb18123ca4f061ce2..69f5704e872868b342f3baaa206b56cb471ae554 100644 --- a/rustc-1.77.0-disable-libssh2.patch +++ b/rustc-1.82.0-disable-libssh2.patch @@ -1,7 +1,7 @@ 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-02-14 14:06:05.881165093 +0100 -+++ rustc-beta-src/src/tools/cargo/Cargo.lock 2024-02-14 14:06:27.169456166 +0100 -@@ -2072,7 +2072,6 @@ checksum = "ee4126d8b4ee5c9d9ea891dd875c +--- 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", @@ -9,7 +9,7 @@ diff -up rustc-beta-src/src/tools/cargo/Cargo.lock.orig rustc-beta-src/src/tools "libz-sys", "openssl-sys", "pkg-config", -@@ -2113,20 +2112,6 @@ dependencies = [ +@@ -2197,20 +2196,6 @@ dependencies = [ "pkg-config", "vcpkg", ] @@ -31,14 +31,14 @@ diff -up rustc-beta-src/src/tools/cargo/Cargo.lock.orig rustc-beta-src/src/tools [[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-02-14 14:06:10.400226884 +0100 -+++ rustc-beta-src/src/tools/cargo/Cargo.toml 2024-02-14 14:06:51.225785086 +0100 -@@ -44,7 +44,7 @@ curl = "0.4.44" - curl-sys = "0.4.70" +--- 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.28", default-features = false, features = ["zlib"] } --git2 = "0.18.2" -+git2 = { version = "0.18.2", default-features = false, features = ["https"] } - git2-curl = "0.19.0" - gix = { version = "0.57.1", default-features = false, features = ["blocking-http-transport-curl", "progress-tree", "revision"] } - gix-features-for-configuration-only = { version = "0.37.1", package = "gix-features", features = [ "parallel" ] } + 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 0000000000000000000000000000000000000000..c83dcc00264eb4cb3ca9eb26421300f348823b0f --- /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 0000000000000000000000000000000000000000..3c1b0124fd01d7d3b074f3cf882dbb0fd38021f5 --- /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-----